小编Jon*_*and的帖子

尝试远程连接到websphere上的JMS队列时,sun/io/MalformedInputException

我知道在其他地方已经提出了一个(非常)类似的问题,但没有答案,所以我在这里发帖,希望新帖子能引发一些有价值的回应.

我正在尝试创建一个独立的应用程序,它将询问在websphere上运行的JMS队列.队列正在运行,因为本地应用程序能够与它通信,并且有消息在那里等着我.

我正在使用Netbeans并使用JDK1.8.另外我已经将以下jar文件添加到库中:

javax.jms-1.1.jar
com.ibm.ws.orb_8.5.0.jar
com.ibm.ws.ejb.thinclient_8.5.0.jar  
Run Code Online (Sandbox Code Playgroud)

后两者是从websphere安装中复制的.

这是初始代码的摘要(它实际上是在一个类中构建的,其中包含上下文和工厂位的方法,因此修改了它以显示在这里):

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL, corbaloc:iiop:192.168.254.202:2809);
try{
InitialContext jndiContext = new InitialContext(env);
}catch(NamingException e){
System.out.println("ERROR: Could not create JNDI context: " + System.lineSeparator() + e.toString());
System.exit(1);
}
ConnectionFactory connectionFactory= (ConnectionFactory) this.jndiContext.lookup(factory);
String outFactory       = "jndi/OUTConnectionFactory";
try{    
connectionFactory = (ConnectionFactory) jndiContext.lookup(outFactory);
}catch(Exception e){
System.out.println("ERROR: Could not create factory connection:");
System.out.println(e.toString());
System.exit(2); 
}
Run Code Online (Sandbox Code Playgroud)

此时(connectionFactory = ...)它失败而没有触发catch

Exception in thread "P=598328:O=0:CT" java.lang.NoClassDefFoundError: sun/io/MalformedInputException
    at com.ibm.rmi.iiop.CDRReader.getTcsCConverter(CDRReader.java:398)
    at com.ibm.rmi.iiop.CDRReader.readStringOrIndirection(CDRReader.java:479)
    at com.ibm.rmi.iiop.CDRReader.read_string(CDRReader.java:465)
    at com.ibm.rmi.IOR.read(IOR.java:335) …
Run Code Online (Sandbox Code Playgroud)

websphere jms

4
推荐指数
1
解决办法
8716
查看次数

标签 统计

jms ×1

websphere ×1