This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 176007 - Can't Run Enterprise Application
Summary: Can't Run Enterprise Application
Status: VERIFIED FIXED
Alias: None
Product: serverplugins
Classification: Unclassified
Component: GlassFish (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: Vince Kraemer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-04 14:35 UTC by Jaroslav Pospisil
Modified: 2009-12-11 05:28 UTC (History)
7 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jaroslav Pospisil 2009-11-04 14:35:05 UTC
Build 200911030201,Win Vista,JDK1.6.0_16

Create new maven Enterprise Application,set server in all modules to Gfv3 and add Session bean with Bussiness class into
EJB. Build with dependencies and then Run ear.
Error in Gfv3 log:

INFO: Updating configuration from org.apache.felix.fileinstall-autodeploy-bundles.cfg
SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Invalid ejb jar [mavenproject1-ejb-1.0-SNAPSHOT.jar]: it contains zero ejb. 
Note: 
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message driven bean. 
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar. 
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful,
@MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.
        at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:72)
        at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:124)
        at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:722)
        at com.sun.enterprise.deployment.Application.visit(Application.java:1733)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:774)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:253)
        at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:108)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:41)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:596)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:538)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:246)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:169)
        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:1159)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1218)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1207)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:362)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:201)
        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:241)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:789)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:697)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:952)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:166)
        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)
INFO: felix.fileinstall.poll  (ms)   5000
INFO: felix.fileinstall.dir            C:\Program Files\glassfish-v3-b70\glassfish\domains\domain1\autodeploy\bundles
INFO: felix.fileinstall.debug          1
INFO: felix.fileinstall.bundles.new.start          true
Comment 1 Milos Kleint 2009-11-05 13:18:12 UTC
jpospisil: I could not reproduce your problem. Please verify that the class with business method is compiled and present
in the ejb's jar file + target/classes directory of the ejb project.

however I was not able to deploy either. I got this exception:
SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Expected to find an expanded directory for submodule
mavenproject11-ejb-1.0-SNAPSHOT.jar but found a JAR.  If this is a directory deployment be sure to expand all submodules.
        at org.glassfish.javaee.full.deployment.EarHandler.getClassLoader(EarHandler.java:187)
        at org.glassfish.deployment.common.DeploymentContextImpl.createClassLoaders(DeploymentContextImpl.java:191)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:217)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:175)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:270)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$4.execute(CommandRunnerImpl.java:422)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:437)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:524)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:140)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:313)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:180)
        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:208)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:752)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:660)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:911)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:164)
        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.NIOContext.execute(NIOContext.java:510)
        at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:357)
        at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:257)
        at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:194)
        at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:129)
        at com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork(FixedThreadPool.java:379)
        at com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:360)
        at java.lang.Thread.run(Thread.java:619)



reassigning to glassfish support for evaluation. What does the message mean? my GlassFish is v3.0-b58 (build 58)
Comment 2 Vince Kraemer 2009-11-05 15:31:45 UTC
Mkleint: you probably need to update to a more recent build of GF v3. The environment that you attempted to reproduce the issue in is woefully out of sync 
with the reported environment.

The message that you got probably means that the directory that is getting deployed has an ejb jar file instead of a directory with the exploded content of an 
ejb jar.  That is not valid for directory deployment.
Comment 3 David Simonek 2009-11-05 15:56:21 UTC
With GlassFish v3 (build 69), I'm getting different exception when following tutorial prototype
http://wiki.netbeans.org/DocsSimpleMavenEntApp.

I'm getting this:
java.lang.RuntimeException:
/home/dafe/NetBeansProjects/SimpleEE6App/SimpleEE6App-ear/target/gfdeploy/com.mycompany_SimpleEE6App-ear_ear_1.0-SNAPSHOT/SimpleEE6App-ejb-1_0-SNAPSHOT_jar
does not exist!
        at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.getAbsolutePuRootFile(PersistenceUnitInfoImpl.java:375)
        at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl._getJarFiles(PersistenceUnitInfoImpl.java:320)
        at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:104)
        at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:130)
        at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:96)
        at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:121)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:620)
        at org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.java:413)
        at org.glassfish.javaee.full.deployment.EarDeployer.access$200(EarDeployer.java:91)
        at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:165)
        at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:163)
        at org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:333)
        at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeployer.java:342)
        at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.java:368)
        at org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:163)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:620)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:274)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:169)
        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:1159)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1218)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1207)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:362)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:201)
        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:241)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:789)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:697)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:951)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:166)
        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.FixedThreadPool$BasicWorker.doWork(FixedThreadPool.java:431)
        at com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:410)

Looking in gfdeploy, there is directory named SimpleEE6App-ejb-1.0-SNAPSHOT_jar but Glassfish wants
SimpleEE6App-ejb-1_0-SNAPSHOT_jar. Do you EE guys know if there is really some name conversion needed and if/where this
could be fixed on Maven side? In other words, who is creating these directories under gfdeploy during deployment
process? I wasn't able to find that out, thanks.
Comment 4 Jaroslav Pospisil 2009-11-05 16:13:17 UTC
I've found,that when I've both glassfishes installed on my system,this behaves weird,sometimes EAR deploys fine,only
without showing of JSP page in browser,sometimes something different. My issue  it's safely reproducible only on b70
version,after you remove version b69 from system and preferably delete .nbi and ,netbeans* folders before install of
recent IDE build with b70. 
Comment 5 Vince Kraemer 2009-11-05 16:13:40 UTC
dsimonek: please open a new issue with this information...  it looks like a different problem
Comment 6 Milos Kleint 2009-11-05 17:12:47 UTC
"The message that you got probably means that the directory that is getting deployed has an ejb jar file instead of a
directory with the exploded content of an ejb jar.  That is not valid for directory deployment."

can you elaborate more on what this means? do I understand correctly that in order to deploy the ear file, I need to
have a folder with expanded ear, that will somehow include expanded ejb jars and wars? Won't this be somehow delegated
to the project's j2eemoduleprovider? Can you be more specific about what methods in
j2eemoduleprovider/j2eeapplicationprovider implementations this problems maps to?



Comment 7 Vince Kraemer 2009-11-05 19:50:37 UTC
dsimonek: I was able to replicate your issue using ant based projects... so it is not relevant here.  I opened
https://glassfish.dev.java.net/issues/show_bug.cgi?id=10839 to track it... it is a server issue.
Comment 8 Vince Kraemer 2009-11-05 20:05:14 UTC
jpospisil: which version of maven were you using?
Comment 9 Vince Kraemer 2009-11-05 21:15:15 UTC
regarding the initial report.

I am on vista
i have gf v3 b70 installed in C:\P F\gfv3-b70
I pulled web-main and built it. it is in c:\Users\vbk\nbhg\web-main\nbbuild\netbeans
i downloaded maven 2.2.1 and put it in c:\Users\vbk\maven221
I am using jdk 6 update 16.

I followed your steps and did not encounter the issue.  the ent app deployed correctly.  The browser did not open.  I
looked up the value for the url from the application.xml and entered that address in firefox.  the page displayed 'Hello
World" as expected.

Please let me know what differences there are between your environment and mine.
Comment 10 Vince Kraemer 2009-11-05 22:26:51 UTC
I just did an install of 200911050201 with gf v3 b70... took all the defaults.

This also behaved ok... though the lack of starting the browser was a bit of a bother, since the domain was not running
on the default ports.
Comment 11 David Simonek 2009-11-06 10:25:55 UTC
to vkraemer: Thanks for quick eval, I can see that https://glassfish.dev.java.net/issues/show_bug.cgi?id=10839 is
already fixed and will be a part of build 72 of GF. Great!

To the original problem - I guess it's because of older GF version used. jpospisil, mkleint, could you try with new GF?
Thanks.
Comment 12 Jaroslav Pospisil 2009-11-06 10:27:31 UTC
With 200911050201 this also works for me.Seems to be fixed by some other fix. Not displaying of index.jsp problem still
remains,I'll file it as separate issue,however. Closing as fixed.
Comment 13 Jaroslav Pospisil 2009-12-11 05:28:30 UTC
v.