JBoss-JMS - 无法下载和/或安装客户端AOP堆栈

时间:2011-07-28 16:15:52

标签: jboss jms messaging jndi

当尝试构建JMS客户端以获得JBoss5上的消息传递连接(默认配置)时,我遇到此错误(在行:Connection conn = qcf.createQueueConnection();)。这是maven项目,在classpath中包含以下库。

jboss:jnp-client:jar:4.0.2:compile
jboss:jboss-aop:jar:JBOSSAS-5.1:compile
jboss:jboss-messaging-client:jar:1.4.7.GA:compile
jboss:jbossall-client:jar:JBOSSAS-5.1:compile
jboss:jboss-common-core:jar:JBOSSAS-5.1:compile
jboss:jboss-mdr:jar:JBOSSAS-5.1:compile
jboss:jboss-logging-spi:jar:JBOSSAS-5.1:compile
org.jboss.remoting:jboss-remoting:jar:2.5.3.SP1:compile

对于一个非常简单的代码,这没有意义。任何帮助表示赞赏。

我的代码如下:

    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.OBJECT_FACTORIES, "ConnectionFactory");
    env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");

    InitialContext iniCtx = new InitialContext(env);

    Object tmp = iniCtx.lookup("java:/XAConnectionFactory");

    QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
    Connection conn = qcf.createQueueConnection();

我得到的错误是

Exception in thread "main" java.lang.RuntimeException: Failed to download and/or install client side AOP stack
    at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:199)
    at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:101)
    at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:95)
    at com.test.JMSExample.main(JMSExample.java:120)
Caused by: org.jboss.jms.exception.MessagingNetworkFailureException: Failed to connect client
    at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createClient(ClientConnectionFactoryDelegate.java:347)
    at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$getClientAOPStack$aop(ClientConnectionFactoryDelegate.java:246)
    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)
    ... 3 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.remoting.InvokerRegistry.loadClientInvoker(InvokerRegistry.java:460)
    at org.jboss.remoting.InvokerRegistry.createClientInvoker(InvokerRegistry.java:359)
    at org.jboss.remoting.Client$6.run(Client.java:724)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.remoting.Client.connect(Client.java:720)
    at org.jboss.remoting.Client.connect(Client.java:668)
    at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createClient(ClientConnectionFactoryDelegate.java:343)
    ... 7 more
Caused by: java.lang.NoSuchMethodError: org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(Ljava/lang/Object;Ljava/util/Properties;Z)V
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.mapJavaBeanProperties(MicroSocketClientInvoker.java:1359)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.setup(MicroSocketClientInvoker.java:533)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.<init>(MicroSocketClientInvoker.java:292)
    at org.jboss.remoting.transport.socket.SocketClientInvoker.<init>(SocketClientInvoker.java:78)
    at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.<init>(BisocketClientInvoker.java:166)
    at org.jboss.remoting.transport.bisocket.TransportClientFactory.createClientInvoker(TransportClientFactory.java:44)
    ... 18 more

2 个答案:

答案 0 :(得分:0)

看起来JAR文件或连接问题之间存在不匹配。尝试执行以下步骤:

1)设置运行JBoss AS的JVM的-verbose:class选项并检查输出以找到MicroSocketClientInvoker.class的来源,看起来JBoss无法从中找到方法。

2)检查端口4457是否已打开,因为JBoss消息传递连接器在4457上使用默认的serverBindPort。

希望它有所帮助。

答案 1 :(得分:0)

我有同样的问题。问题可能是由几个潜在的根本原因引起的。为了评估您的特定根本原因,您需要查看异常堆栈跟踪,直到“由...引发”异常到根异常。

在我的情况下,问题是由信任库证书文件引起的,该文件由于在我的gradle项目的processResources taks期间错误地过滤而损坏。在processResources过滤二进制文件时,二进制文件会被破坏。对我来说,修复是从资源过滤中排除我的certificate.truststore文件。