quality@glassfish.java.net

Re: ejb-jar.xml: Premature end of file

From: Tim Quinn <Timothy.Quinn_at_Sun.COM>
Date: Thu, 10 Dec 2009 09:22:26 -0600

Have you tried NOT changing the reference in application.xml to the EJB
module? That is, leave it as HelloWorldEJBProject.jar and see if that
happens.

The directory deployment mechanism knows that submodules like your EJB
module should be expanded into the HelloWorldEJBProject_jar directory
even though the application.xml descriptor refers to the .jar file.

- Tim

matthias.fraass_at_tricoder.net wrote:
> I have good and bad news:
>
> Bad news: It doesn't work in b74 (via Update Tool) - that's where I
> found the bug initially!
> Good news: I found some sort of cause: it's the packaging of the
> ejb.jar as a directory, not a JAR.
>
> I downloaded the HelloWorld.EAR from
> http://www.devx.com/ibm/Article/16365. It did deploy fine (ignore that
> JDBC exception) under b71* and b74.
> Then I repackaged the HelloWorld.ear\HelloWorldEJBProject.jar as a
> exploded HelloWorld.ear\HelloWorldEJBProject_jar and changed its entry
> in application.xml accordingly.
> -> b71: deploys fine
> -> b74: Premature end of file :(
>
> Shall I open a bug for this?
>
> Cheers,
>
> Matthias
>
> *Im mixed that up in my first mail - b71 is the last good version, not b70
>
>
> 2009/12/10 Richard Kolb <rjdkolb_at_gmail.com>:
>
>> Hi Matthias
>>
>> Sounds like a strange one. I think B71 had some strange issues.
>> Can you please try on Build 74 B.
>> http://download.java.net/glassfish/v3/promoted/glassfish-v3-b74b.zip
>>
>> This will get promoted to V3 final in a few hours, So I hope it you are
>> unable to recreate :)
>>
>> Also , are you using maven ?
>> Maven sorts out all these XML files for me :)
>>
>>
>> regards
>> Richard.
>>
>> 2009/12/10 matthias.fraass_at_tricoder.net <matthias.fraass_at_gmail.com>
>>
>>> Hi folks,
>>>
>>> this is strange:
>>>
>>> from b71 on, we can't deploy our EAR. We're getting a
>>> "org.xml.sax.SAXParseException: Premature end of file" (see full
>>> stacktrace below) for the ejb-jar.xml.
>>> We even stripped the ejb-jar.xml down (see attached).
>>>
>>> It does deploy fine with build b66-b70, but not from b71 on.
>>> We tested this on two different machines.
>>> - JDK 1.6.0_16
>>> - WinXP
>>>
>>> The EAR is packaged like this:
>>> - some.EAR
>>> - META-INF/application.xml
>>> - some_jar (directory)
>>> - META-INF/ejb-jar.xml
>>>
>>> The some_jar directory is declared in application.xml as
>>> <module>
>>> <ejb>some_jar</ejb>
>>> </module>
>>>
>>> I don't know any further from here on.
>>> Does anyone have an idea?
>>>
>>> Could it be the SaxParser trying to download a DTD and fails, as we're
>>> behind a HTTP proxy? But I'd expect a connection timeout then...
>>>
>>> Another strange thing: when I delete the ejb-jar.xml from the EAR, I'm
>>> getting a "Truncated class file" error?!
>>>
>>> I feel dumb.
>>>
>>> Best regards,
>>>
>>> -Matthias
>>>
>>>
>>> Full stack trace:
>>>
>>>
>>> [#|2009-12-10T12:12:22.250+0100|SEVERE|glassfishv3.0|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=22;_ThreadName=Thread-1;|DPL8015:
>>> Invalid Deployment Descriptors in Deployment descriptor file
>>> META-INF/ejb-jar.xml in archive [some_jar].
>>> Line 1 Column 1 -- Premature end of file.|#]
>>>
>>>
>>> [#|2009-12-10T12:12:22.250+0100|SEVERE|glassfishv3.0|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=22;_ThreadName=Thread-1;|DPL8005:
>>> Deployment Descriptor parsing failure : Premature end of file.|#]
>>>
>>>
>>> [#|2009-12-10T12:12:22.250+0100|SEVERE|glassfishv3.0|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=22;_ThreadName=Thread-1;|Exception
>>> while deploying the app
>>> java.io.IOException: org.xml.sax.SAXParseException: Premature end of file.
>>> at
>>> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:148)
>>> at
>>> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:78)
>>> at
>>> com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:612)
>>> at
>>> com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:554)
>>> at
>>> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
>>> at
>>> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
>>> at
>>> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
>>> at
>>> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
>>> at
>>> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
>>> at
>>> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
>>> at
>>> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
>>> at
>>> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
>>> at
>>> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
>>> at
>>> com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
>>> at
>>> com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
>>> at
>>> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
>>> at
>>> com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
>>> at
>>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
>>> at
>>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
>>> at
>>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
>>> at
>>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
>>> at
>>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
>>> at
>>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
>>> at
>>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
>>> at
>>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
>>> at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
>>> at
>>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
>>> at
>>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
>>> at java.lang.Thread.run(Thread.java:619)
>>> Caused by: org.xml.sax.SAXParseException: Premature end of file.
>>> at
>>> com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:304)
>>> at
>>> com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:225)
>>> at
>>> com.sun.enterprise.deployment.archivist.Archivist.readStandardDeploymentDescriptor(Archivist.java:614)
>>> at
>>> com.sun.enterprise.deployment.archivist.Archivist.readDeploymentDescriptors(Archivist.java:366)
>>> at
>>> com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:238)
>>> at
>>> com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:247)
>>> at
>>> com.sun.enterprise.deployment.archivist.ApplicationArchivist.readModulesDescriptors(ApplicationArchivist.java:608)
>>> at
>>> com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:244)
>>> at
>>> com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
>>> at
>>> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:145)
>>> ... 31 more
>>> Caused by: org.xml.sax.SAXParseException: Premature end of file.
>>> at
>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
>>> at
>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1414)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1059)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
>>> at
>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
>>> at
>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
>>> at
>>> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
>>> at
>>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
>>> at
>>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
>>> at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
>>> at
>>> com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:298)
>>> ... 40 more
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: quality-unsubscribe_at_glassfish.dev.java.net
>>> For additional commands, e-mail: quality-help_at_glassfish.dev.java.net
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: quality-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: quality-help_at_glassfish.dev.java.net
>
>