簡體   English   中英

簡單的 web 應用程序在 JBoss 5.1 中的隊列上查找 JMS 消息

[英]Simple web app looking for JMS messages on a queue in JBoss 5.1

我創建了一個簡單的 spring webapp,它觸發一個線程並在 jms 隊列中查詢消息。 web 應用程序在 JBoss 5.1 中運行。 我正在使用 JBoss Developer Studio 在應用程序服務器中創建和運行應用程序。 應用服務器也在 JBoss Developer Studio 中運行。

線程運行正常,並嘗試每 5 秒查詢一次隊列。 但是,當嘗試創建與隊列的連接時,我遇到了異常。

17:48:47,152 ERROR [JBossConnectionFactory] Failed to download and/or install client side AOP stack
org.jboss.jms.exception.MessagingJMSException: Failed to invoke
    at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:271)
    at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)
    at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
    at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$getClientAOPStack$aop(ClientConnectionFactoryDelegate.java:251)
    at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.getClientAOPStack(ClientConnectionFactoryDelegate.java)
    at org.jboss.jms.client.ClientAOPStackLoader.load(ClientAOPStackLoader.java:75)
    at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:192)
    at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:101)
    at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:95)
    at com.thales.jms.service.JBossJmsService.reconnectPointToPoint(JBossJmsService.java:87)
    at com.thales.jms.service.JBossJmsService.receive(JBossJmsService.java:53)
    at com.thales.jms.service.JmsReceiverThread.run(JmsReceiverThread.java:19)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: org.jboss.jms.wireformat.ConnectionFactoryGetClientAOPStackRequest cannot be cast to org.jboss.jms.wireformat.RequestSupport
    at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:150)
    at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:930)
    at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:106)
    at org.jboss.remoting.Client.invoke(Client.java:2034)
    at org.jboss.remoting.Client.invoke(Client.java:877)
    at org.jboss.remoting.Client.invoke(Client.java:865)
    at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
    ... 11 more
17:48:47,152 ERROR [STDERR] java.lang.RuntimeException: Failed to download and/or install client side AOP stack
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:199)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:101)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:95)
17:48:47,152 ERROR [STDERR]     at com.thales.jms.service.JBossJmsService.reconnectPointToPoint(JBossJmsService.java:87)
17:48:47,152 ERROR [STDERR]     at com.thales.jms.service.JBossJmsService.receive(JBossJmsService.java:53)
17:48:47,152 ERROR [STDERR]     at com.thales.jms.service.JmsReceiverThread.run(JmsReceiverThread.java:19)
17:48:47,152 ERROR [STDERR]     at java.lang.Thread.run(Unknown Source)
17:48:47,152 ERROR [STDERR] Caused by: org.jboss.jms.exception.MessagingJMSException: Failed to invoke
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:271)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$getClientAOPStack$aop(ClientConnectionFactoryDelegate.java:251)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.getClientAOPStack(ClientConnectionFactoryDelegate.java)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.ClientAOPStackLoader.load(ClientAOPStackLoader.java:75)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:192)
17:48:47,152 ERROR [STDERR]     ... 6 more
17:48:47,152 ERROR [STDERR] Caused by: java.lang.ClassCastException: org.jboss.jms.wireformat.ConnectionFactoryGetClientAOPStackRequest cannot be cast to org.jboss.jms.wireformat.RequestSupport
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:150)
17:48:47,152 ERROR [STDERR]     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:930)
17:48:47,152 ERROR [STDERR]     at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:106)
17:48:47,152 ERROR [STDERR]     at org.jboss.remoting.Client.invoke(Client.java:2034)
17:48:47,152 ERROR [STDERR]     at org.jboss.remoting.Client.invoke(Client.java:877)
17:48:47,152 ERROR [STDERR]     at org.jboss.remoting.Client.invoke(Client.java:865)
17:48:47,152 ERROR [STDERR]     at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
17:48:47,153 ERROR [STDERR]     ... 11 more

該 webapp 依賴於兩個 jboss 庫。 這些是從 JBoss 5.1 服務器本身提取的。 這些庫是:

jboss-javaee.jar
jboss-messaging-client.jar

連接隊列的代碼如下:

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "jnp://localhost:1099");
env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");


Context ic = new InitialContext(env);
QueueConnectionFactory connectionFactory = (QueueConnectionFactory) ic.lookup("ConnectionFactory");
Queue queue = (Queue) ic.lookup("queue/DLQ");
connection = connectionFactory.createQueueConnection();
session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
receiver = session.createReceiver(queue);

嘗試創建隊列連接 (connectionFactory.createQueueConnection();) 時發生異常。 我整個下午都在谷歌上搜索,並沒有找到任何可以幫助解決我的問題的東西。

有誰現在為什么會發生異常以及如何解決它? 我覺得這是 jboss jars 的問題,我正在構建 web 應用程序。 如果有人可以提供幫助,將不勝感激。

感謝和抱歉這么長的帖子!

我最近也遇到了這個問題,並通過在相應應用程序的 pom.xml 中添加/使用以下依賴項(用於 jms)來修復它-> 注意:保留依賴項的 scope,如下所示。

    <dependency>
        <groupId>org.jboss.javaee</groupId>
        <artifactId>jboss-jms-api</artifactId>
        <version>1.1.0.GA</version>
        <scope>provided</scope>
    </dependency>

    <dependency>  
        <groupId>org.jboss.jbossas</groupId>  
        <artifactId>jboss-as-profileservice-client</artifactId>  
        <version>6.0.0.Final</version>  
        <type>pom</type>  
        <scope>provided</scope>
    </dependency>  

    <dependency>
        <groupId>jboss.messaging</groupId>
        <artifactId>jboss-messaging-client</artifactId>
        <version>1.4.6.GA</version>
        <scope>provided</scope>
    </dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM