Соединение очередей JMS в работающие Jars - PullRequest
0 голосов
/ 09 января 2012

У меня есть очереди JMS на локальном и удаленном сервере, когда я пытаюсь подключить их через программу, запущенную в Eclipse, она работает нормально. Если я упаковываю ту же программу в исполняемый файл Jar, я получаю следующее исключение, и мне трудно разобраться, почему его выбрасывают. Я предполагаю, что при запросе соединения с очередью JMS, в то время как в Jar должно быть по-другому, Пожалуйста, помогите.

Я использую JBOSS в качестве промежуточного программного обеспечения.

public void setupPTP() {
    try {
        Properties props = new Properties();
        props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
        props.setProperty("java.naming.provider.url","jnp://localhost:1099");
        props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

        /*
         * This is where the Exception is getting thrown
         */
        InitialContext iniCtx = new InitialContext(props);

        Object tmp = iniCtx.lookup("java:/ConnectionFactory");
        QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;

        conn = qcf.createQueueConnection();
        que = (Queue) iniCtx.lookup(QueueSetup.getMessageQueue());
        session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
        conn.start();
        log.info("### Queue Connection UP and STARTED");
    } catch (JMSException jmsException) {
        log.error("!!! JMSException while setting up the Queue");
        jmsException.printStackTrace();
    } catch (NamingException namingException) {
        log.error("!!! NamingException while setting up the Queue");
        namingException.printStackTrace();
    }

javax.naming.CommunicationException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.net.MalformedURLException: unknown protocol: rsrc]
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at org.jivesoftware.sparkimpl.plugin.heat.ProducerHeatClient.setupPTP(ProducerHeatClient.java:47)
    at org.jivesoftware.sparkimpl.plugin.heat.ProducerHeatClient.<init>(ProducerHeatClient.java:31)
    at org.jivesoftware.sparkimpl.plugin.heat.HeatPlugin.initialize(HeatPlugin.java:41)
    at org.jivesoftware.spark.PluginManager$2.run(PluginManager.java:616)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:

    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.net.MalformedURLException: unknown protocol: rsrc
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:336)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
    ... 20 more

Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:

java.net.MalformedURLException: unknown protocol: rsrc
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:293)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

Caused by: java.net.MalformedURLException: unknown protocol: rsrc

at java.net.URL.<init>(URL.java:574)
    at java.net.URL.<init>(URL.java:464)
    at java.net.URL.<init>(URL.java:413)
    at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:751)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:147)
    at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
    at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
    at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
    at javax.naming.CompoundName.readObject(CompoundName.java:554)
    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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
    at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:306)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:290)
    ... 9 more 

Любая помощь будет принята с благодарностью.

С уважением Adofo

1 Ответ

0 голосов
/ 09 января 2012

Это сообщение может помочь: RMI - неизвестный протокол: rsrc

...