Hab jetzt einen Logger Bean probiert zu deployen und bekomme folgende
Meldung vom JBoss
10:57:26,959 WARN [JMSContainerInvoker] Could not find the queue
destination-jndi-name=ejb/LogBean
10:57:26,979 WARN [JMSContainerInvoker] destination not found:
queue/LogBean reason: javax.naming.NameNotFoundException: LogBean not
bound
10:57:26,979 WARN [JMSContainerInvoker] creating a new temporary
destination: queue/LogBean
und gleich danach nochmal vom JBoss
10:57:27,059 ERROR [JMSContainerInvoker] Starting failed
javax.naming.NameNotFoundException: LogBean not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:495)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:503)
at org.jnp.server.NamingServer.getObject(NamingServer.java:509)
at org.jnp.server.NamingServer.lookup(NamingServer.java:282)
at org.jnp.server.NamingServer.lookup(NamingServer.java:256)
at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch
(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages
(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer
(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall
(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup
(NamingContext.java:492)
at org.jnp.interfaces.NamingContext.lookup
(NamingContext.java:471)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at
org.jboss.ejb.plugins.jms.JMSContainerInvoker.createDestination
(JMSContainerInvoker.java:874)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate
(JMSContainerInvoker.java:548)
meine jboss.xml
<message-driven>
<ejb-name>ejb/LogBean</ejb-name>
<destination-jndi-name>ejb/LogBean</destination-jndi-name>
</message-driven>
meine ejb-jar.xml
<message-driven >
<description><![CDATA[]]></description>
<ejb-name>ejb/LogBean</ejb-name>
<ejb-class>tf.at.szabolcs.stockserver.LogBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
Irgendwelche Ideen in welche Richtung der Fehler gehen könnte?
Danke und Grüße
Szabolcs
Die Einträge in der jboss.xml:
> <ejb-name>ejb/LogBean</ejb-name>
> <destination-jndi-name>ejb/LogBean</destination-jndi-name>
sollten unterschiedlich sein.
(Eine gute Wahl wäre in Deinem Fall:
<destination-jndi-name>queue/LogBean</destination-jndi-name>
Siehe Meldung:
> 10:57:26,979 WARN [JMSContainerInvoker] creating a new temporary
> destination: queue/LogBean
)
sg,
Rainer (Tutor)
danke für die Antwort ... habs auch schon geändert aber hat nicht geholfen!
Ich bekomme des weiteren noch folgende Meldung:
MBeans waiting for other MBeans:
[ObjectName: jboss.j2ee:jndiName=local/ejb/LogBean,service=EJB
state: FAILED
I Depend On:
Depends On Me: javax.naming.NameNotFoundException: LogBean not bound]
Was genau hat das zu bedeuten?
Grüße
Szabolcs
sg,
Rainer
> So wie ich das verstehe, findet er ejb/LogBean nicht.
> Ich würde mal versuchen, die Namen ein wenig zu variieren.
> Vielleicht bringt ihm das LogBean in ejb/ und queue/ durcheinander.
> Versuch mal, nur LogBean (statt ejb/LogBean) zu verwenden.
hab ich auch schon probiert ... hilft leider nicht!
Grüße
Szabolcs
Bitte poste auch immer, was nicht funktioniert. Ob neue Meldungen kommen,
andere verschwinden, etc.
mit: "hilft leider nicht" kann ich wenig anfangen.
sg,
Rainer
Ich bekomme noch immer die gleichen Fehlermeldungen wie am Anfang!
15:36:14,903 WARN [JMSContainerInvoker] Could not find the queue
destination-jndi-name=queue/LogBean
15:36:15,664 WARN [JMSContainerInvoker] destination not found:
queue/LogBean reason: javax.naming.NameNotFoundException: LogBean not
bound
15:36:15,664 WARN [JMSContainerInvoker] creating a new temporary
destination: queue/LogBean
15:36:15,674 INFO [LogBean] Creating
15:36:15,674 INFO [LogBean] Created
15:36:15,674 INFO [LogBean] Starting
15:36:15,714 INFO [LogBean] Bound to JNDI name: queue/LogBean
15:36:15,714 INFO [LogBean] Started
15:36:16,385 ERROR [JMSContainerInvoker] Starting failed
javax.naming.NameNotFoundException: LogBean not bound
Nebenbei bermerkt verwende ich XDoclet und die Tags für mein Message-
Driven Bean schauen folgedermaßen aus - vielleicht habe ich ja was
vergessen?
/**
* @ejb.bean
* name="LogBean"
* transaction-type="Container"
* destination-type="javax.jms.Queue"
* acknowledge-mode="Auto-acknowledge"
*
* @jboss.destination-jndi-name queue/LogBean
*/
Die generierten Deployment descriptors schauen folgendermaßen aus:
jboss.xml:
<message-driven>
<ejb-name>LogBean</ejb-name>
<destination-jndi-name>queue/LogBean</destination-jndi-name>
</message-driven>
ejb-jar.xml:
<!-- Message Driven Beans -->
<message-driven >
<description><![CDATA[]]></description>
<ejb-name>LogBean</ejb-name>
<ejb-class>tf.at.szabolcs.stockserver.LogBean</ejb-class>
<transaction-type>Container</transaction-type>
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
Danke und Grüße
Szabolcs
* @ejb.bean acknowledge-mode="Auto-acknowledge"
* description="Bean for logging LogRecords"
* display-name="value"
* name="Log"
* transaction-type = "Container"
* destination-type = "javax.jms.Queue"
* @jboss.destination-jndi-name name = "queue/LogEJB"
*/
public class LogBean implements MessageDrivenBean, MessageListener
Starte einmal JBoss neu und schau, ob das OilService läuft. Wenn das nicht
hilft, weiss ich auch nicht weiter.
sg,
Rainer
> Bei mir schaut das so aus:
>
> * @ejb.bean acknowledge-mode="Auto-acknowledge"
> * description="Bean for logging LogRecords"
> * display-name="value"
> * name="Log"
> * transaction-type = "Container"
> * destination-type = "javax.jms.Queue"
> * @jboss.destination-jndi-name name = "queue/LogEJB"
> */
> public class LogBean implements MessageDrivenBean, MessageListener
Also ich weiß nicht genau was der Grund war aber jetzt sind die
Fehlermeldungen weg. Hab einfach mal deine XDoclet Tags genommen. Er
generiert eigentlich genau das gleiche wie meine.
Jetzt bekomme ich aber folgende Meldungen in regelmäßigen Abständen:
18:28:06,486 WARN [JMSContainerInvoker] JMS provider failure detected:
javax.jms.InvalidDestinationException: The destination QUEUE.LogEJB does
not exist !
at org.jboss.mq.server.ClientConsumer.addSubscription
(ClientConsumer.java:135)
at org.jboss.mq.server.JMSDestinationManager.subscribe
(JMSDestinationManager.java:611)
at org.jboss.mq.server.JMSServerInterceptorSupport.subscribe
(JMSServerInterceptorSupport.java:296)
at org.jboss.mq.security.ServerSecurityInterceptor.subscribe
(ServerSecurityInterceptor.java:150)
at org.jboss.mq.server.TracingInterceptor.subscribe
(TracingInterceptor.java:677)
at org.jboss.mq.server.JMSServerInvoker.subscribe
(JMSServerInvoker.java:298)
at org.jboss.mq.il.jvm.JVMServerIL.subscribe
(JVMServerIL.java:315)
at org.jboss.mq.Connection.addConsumer(Connection.java:1082)
at org.jboss.mq.SpyConnectionConsumer.<init>
(SpyConnectionConsumer.java:73)
at org.jboss.mq.SpyConnection.createConnectionConsumer
(SpyConnection.java:113)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate
(JMSContainerInvoker.java:562)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService
(JMSContainerInvoker.java:579)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker
$ExceptionListenerImpl.onException(JMSContainerInvoker.java:1079)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$1.run
(JMSContainerInvoker.java:591)
18:28:06,486 INFO [JMSContainerInvoker] Trying to reconnect to JMS
provider
> Starte einmal JBoss neu und schau, ob das OilService läuft. Wenn das
> nicht hilft, weiss ich auch nicht weiter.
Dieser Service läuft bei mir!
# service=InvocationLayer,type=OIL
# service=InvocationLayer,type=OIL2
Grüße
Szabolcs
> [...]
> Jetzt bekomme ich aber folgende Meldungen in regelmäßigen Abständen:
>
> 18:28:06,486 WARN [JMSContainerInvoker] JMS provider failure detected:
> javax.jms.InvalidDestinationException: The destination QUEUE.LogEJB does
> not exist !
Hmm, ist die Queue in [1] deklariert? Das koennte auch der Grund fuer die
"creating a new temporary destination"-Meldungen sein.
Schoene Gruesse,
Benjamin A. Schmit
1. file://${JBOSS_HOME}/server/default/deploy/jms/jbossmq-destinations-service.xml
--
Seek freedom and become captive of your desires.
Seek discipline and find your liberty.
-- Frank Herbert, Dune Chronicles
Hab einfach in der jbossmq-destinations-service.xml einen 4zeiler
eingefügt:
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=LogEJB">
<depends optional-attribute-name="DestinationManager">
jboss.mq:service=DestinationManager</depends>
</mbean>
Grüße
Szabolcs