Netbeans 8 Glassfish 4 NotificationQueue exeption

Fórumok

Üdv!

Ismerkedem a Java EE 7 + Glassfish 4 párossal.
Ezt a mintát próbáltam megcsinálni: http://netbeans.dzone.com/articles/develop-java-ee-6-app-jsf2
Még a kész app is megvan: itt

A Build lefut, de amikor deploy-olni szeretném a glassfish app szerverre:

...
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid destination jms/NotificationQueue for MDB: JNDI name not found
...
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid destination jms/NotificationQueue for MDB: JNDI name not found
...
Info: Exception Occurred :Error occurred during deployment: Exception while loading the app : EJB Container initialization error.

Tudna segíteni valaki, hogy hol keressem a hibát? A JNDI-ben kell beállítani még valamit (ami a fenti leírásból kimaradt)?

(OS: Fedora 20 x64)

--
G.

Hozzászólások

Tudna segíteni azzal valaki, hogy az említett demo-t megpróbálja build-elni,deploy-olni?
(Egyáltalán másnak megy, én csinálok valamit rosszul?)

--
G.

Szia!

Tuti jó legyen a resource létrehozás:

GLASSFISH_HOME/bin/asadmin add-resources sun-resources.xml

az asadmin cli-t használhatod, a projektben meg megtalálható a sun-resources.xml

így próbáld létrehozni a resource-okat.

Javaslom megnézni / elolvasni bár nem a legfrisebb, de szerintem az alapokat jól átbeszéli: Imre Gábor - Szoftverfejlesztés Java EE platformon

Üveghalat nem ismerek, de WebLogic esetén az adott JMS-t neked kell létrehoznod az alkszerver admin felületén, gyanítom itt is épp ez a lépés hiányzik.

Rákerestem a JMS beállításra, be is állítottam:

Create JMS Message Queue

The JMS destination serves as the repositories for messages. Use
the following steps to configure the message queue using the admin
console:

Log on to the GlassFish admin console.
Expand the Resources -> JMSResources menu from the left-hand
navigation bar.
Select Destination Resources.
Click the New button to create a destination.
Enter the following details:
JNDI Name as "webTrackerQueue". This is the unique JNDI
name of the destination. JMS clients use this name to look up
the message queue.
Physical destination name as "webTrackerQueue". This is
the destination name in the message broker.
Resource Type as "javax.jms.Queue". The resource type will
be Queue, as we are using a point-to-point messaging
model.
Description as "Webtracker Queue Destination".
Click OK.

Fel is vittem a NotificationQueue-t, de:

# server.log
# ...
Severe: Exception while loading the app
Severe: The web application [unknown] created a ThreadLocal with key of type [org.glassfish.pfl.dynamic.codegen.impl.CurrentClassLoader$1] (value [org.glassfish.pfl.dynamic.codegen.impl.CurrentClassLoader$1@4b4593d0]) and a value of type [org.glassfish.web.loader.WebappClassLoader] (value [WebappClassLoader (delegate=true; repositories=WEB-INF/classes/)]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Info: file:/home/gabor/.netbeans/8.0/config/GF_4.0_18/domain1/applications/CustomerApp-war/WEB-INF/lib/CustomerApp-ejb.jar_CustomerApp-ejbPU logout successful
Severe: Exception while loading the app : EJB Container initialization error
java.lang.Exception
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:215)
at org.glassfish.ejb.mdb.MessageBeanContainer.(MessageBeanContainer.java:252)
at org.glassfish.ejb.mdb.MessageBeanContainerFactory.createContainer(MessageBeanContainerFactory.java:63)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:206)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:235)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:257)
at org.glassfish.admin.rest.resources.TemplateListOfResource.createResource(TemplateListOfResource.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:224)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946)
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:331)
at org.glassfish.admin.rest.adapter.RestAdapter$2.service(RestAdapter.java:318)
at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:181)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.security.PrivilegedActionException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.getActivationSpec(ConnectorMessageBeanClient.java:286)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:195)
... 64 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at com.sun.enterprise.connectors.util.SetMethodAction.handleException(SetMethodAction.java:151)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:134)
... 67 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:108)
... 67 more
Caused by: java.lang.IllegalArgumentException: MQJMSRA_AS4001: setDestination:Invalid destination name=jms/NotificationQueue
at com.sun.messaging.jms.ra.ActivationSpec.setDestination(ActivationSpec.java:432)
... 72 more

Info: Exception Occurred :Error occurred during deployment: Exception while loading the app : EJB Container initialization error. Please see server.log for more details.
# ---------------------

Mi kellhet neki? :(

--
G.

Addig jutottam, hogy a Projects fülön a "CustomerApp"-on jobb klikk és "Run", akkor gondolom helyben build-eli és futtatja, mert a böngészőt meg is nyitotta és megjelent a webes app >> így <<. A GF szerverre a deploy nem megy. Ez még nem egészen világos, hogy mi a különbség a helyben futtatás (Run) és A GF szerverre deploy-olás és futtatás (Launch) között.

--
G.