我正在尝试访问在 Websphere Application Server 8 上配置的 jms 队列。但我收到 java.lang.NoClassDefFoundError: com.ibm.ws.naming.util.CommonHelpers 异常。 有人能提出解决方案吗?是否需要添加jar文件? 我已经添加了 -
com.ibm.ws.messagingClient.jar
com.ibm.ws.sib.client_ExpeditorDRE_8.0.0.jar
com.ibm.ws.sib.client.thin.jms_8.0.0.jar
com.ibm.xml.thinclient_8.0.0.jar
在类路径中。 您可以在 How to set Context.INITIAL_CONTEXT_FACTORY? NoInitialContextException? 找到代码
package com.jms.test;
import java.util.Hashtable;
import javax.jms.Queue;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Demo {
public static void main(String[] args) throws NamingException {
System.out.println("Start.....");
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
environment.put(Context.PROVIDER_URL, "iiop://localhost:2810");
//String pUrl = System.getProperty(Context.PROVIDER_URL);
//System.out.println("*******"+pUrl+"********");
InitialContext ctx = new InitialContext(environment);
Queue queue = (Queue) ctx.lookup("jms/inQueue");
System.out.println("*** Queue is *** "+queue.toString());
}}
异常堆栈跟踪 -
Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.ws.naming.util.CommonHelpers
at com.ibm.websphere.naming.WsnInitialContextFactory.getInitialContext(Unknown Source)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:230)
at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:343)
at javax.naming.InitialContext.internalInit(InitialContext.java:281)
at javax.naming.InitialContext.<init>(InitialContext.java:206)
at com.jms.test.Demo.main(Demo.java:16)
Caused by: java.lang.ClassNotFoundException: com.ibm.ws.naming.util.CommonHelpers
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClass(ClassLoader.java:646)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:612)
... 7 more
最佳答案
尝试添加位于 WebSphere\AppServer85\runtimes
文件夹中的 com.ibm.ws.admin.client_8.5.0.jar
。 CommonHelpers
类位于该 jar 中。
更新评论
这可能与所需的 SSL 有关。请查看这两篇文章如何禁用 SSL:
关于java.lang.NoClassDefFoundError : com. ibm.ws.naming.util.CommonHelpers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26903751/