java.lang.NoClassDefFoundError : com. ibm.ws.naming.util.CommonHelpers

标签 java jakarta-ee jms jndi websphere-8

我正在尝试访问在 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.jarCommonHelpers 类位于该 jar 中。

更新评论

这可能与所需的 SSL 有关。请查看这两篇文章如何禁用 SSL:

关于java.lang.NoClassDefFoundError : com. ibm.ws.naming.util.CommonHelpers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26903751/

相关文章:

java - 从 Java 客户端查找 Weblogic ConnectionFactory

java - 增强现实测量技术/方法

java - 企业应用开发-RMI和EJB

java - 如果目标目的地的父级尚不存在,如何将页面复制到给定路径?

Java EE6 调度范围

java - MyBatis 不支持 boolean 映射

java - 在weblogic 8.1上部署spring消息驱动的pojo

jms - 发送方如何知道消息已被 MQ JMS API 使用?

java - 如何解释引用命名空间 java : on a non-java client? 的 WSDL

通过带有凭据的代理进行 Java 请求