使用 glassfish 服务器的 JMS 客户端

JMS Client using glassfish server

您好,我正在尝试从我计算机中的本地客户端连接我的服务器 我有一个远程服务器 运行.. 当我 运行 我的代码来自 Netbeans 时一切正常...... 当我从 CMD 尝试时,我收到了这个错误

java.lang.NullPointerException 在 com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:347) 在 com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:354) 在 com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:384) 在 com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:329) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:477) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438) 在 javax.naming.InitialContext.lookup(来源不明) 在 test4.Test4.main(Test4.java:45) 线程 "main" javax.naming.NamingException 中的异常:在 SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory、java.naming.factory.url.pkgs=[=37= 中查找 'jms/connection' 失败], java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是 javax.naming.NamingException: 无法为 SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是 java.lang.NullPointerException]] 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:491) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438) 在 javax.naming.InitialContext.lookup(来源不明) 在 test4.Test4.main(Test4.java:45) Caused by: javax.naming.NamingException: 无法为 SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=[ 获取 SerialContextProvider =39=]} [根异常是 java.lang.NullPointerException] 在 com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:334) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:477) ... 3 更多 原因:java.lang.NullPointerException 在 com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:347) 在 com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:354) 在 com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:384) 在 com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:329) ... 还有 4 个

public static void main(String[] args) throws NamingException {

    Context initialContext = Test4.getInitialContext();
    ConnectionFactory connectionFactory = (ConnectionFactory)initialContext.lookup("jms/connection");
    System.out.println("yeee:"+connectionFactory.toString());
    JMSContext jMSContext =  connectionFactory.createContext();
    Queue myQueue = (Queue)initialContext.lookup("jms/myQueue");
    JMSProducer jMSProducer = jMSContext.createProducer();
    jMSProducer.send(myQueue, "Hi,Zion");
    System.out.println("work work work wrok wrok");
}



 public static Context getInitialContext() throws NamingException{

    System.setProperty("org.omg.CORBA.ORBInitialHost", "MyIP");
    System.setProperty("org.omg.CORBA.ORBInitialPort", "3800");

    return new InitialContext();
}

好的,我想通了!!!我应该将所有路径与安装了 glassfish 的 jars 库和 运行 java -cp "c:/programFiles/glassfish/lib/*" test4.Test4 放在一起 可以关闭主题。