java - java.lang.ClassNotFoundException: com.ibm.ejs.ras.hpel.HpelHelper
问题描述
再会,
我有一个简单的 http post java main 函数如下:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.HttpHostConnectException;
import org.apache.http.impl.client.DefaultHttpClient;
public class Test {
public static void main(String[] args) {
try {
System.out.println("java version: " + System.getProperty("java.version"));
HttpClient httpclient = new DefaultHttpClient( );
HttpPost post = new HttpPost("http://www.google.com");
HttpResponse response = httpclient.execute( post );
System.out.println("response is " + response);
}
catch ( HttpHostConnectException ce ) {
System.out.println("Service is not available. Please try again later." );
}
catch ( Exception e ) {
System.out.println("e is " + e);
}
}
}
我在 IBM RAD 中有一些 java 项目,当我在项目的 1 中运行此代码时,我会得到 http 200 响应。但是,在另一个项目中,我运行相同的代码,我会得到如下错误: 无法实例化 [ch.qos.logback.classic.LoggerContext] 报告异常:
java.lang.NoClassDefFoundError: com.ibm.ejs.ras.hpel.HpelHelper
at com.ibm.ejs.ras.RasHelper.getThreadId(RasHelper.java:1735)
at com.ibm.ejs.ras.RasEvent6$1.initialValue(RasEvent6.java:101)
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:152)
at java.lang.ThreadLocal.get(ThreadLocal.java:142)
at com.ibm.ejs.ras.RasEvent6.<init>(RasEvent6.java:292)
at com.ibm.ejs.ras.MessageEvent6.<init>(MessageEvent6.java:203)
at com.ibm.ejs.ras.Tr.fireMessageEvent(Tr.java:1558)
at com.ibm.ejs.ras.Tr.error(Tr.java:728)
at com.ibm.ws.naming.java.javaURLContextFactory.isNameSpaceAccessable(javaURLContextFactory.java:108)
at com.ibm.ws.naming.urlbase.UrlContextFactory.getObjectInstance(UrlContextFactory.java:85)
at javax.naming.spi.NamingManager.getURLContext(NamingManager.java:702)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:422)
at javax.naming.InitialContext.lookup(InitialContext.java:436)
at ch.qos.logback.classic.util.JNDIUtil.lookup(JNDIUtil.java:38)
at ch.qos.logback.classic.joran.action.InsertFromJNDIAction.begin(InsertFromJNDIAction.java:62)
at ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:277)
at ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:149)
at ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:131)
at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:148)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:134)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:97)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:56)
at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77)
at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:228)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:159)
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:178)
at com.ibs.ui.customer.action.Test.main(Test.java:15)
Caused by: java.lang.ClassNotFoundException: com.ibm.ejs.ras.hpel.HpelHelper
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:665)
at java.lang.ClassLoader.loadClass(ClassLoader.java:644)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:627)
... 39 more
这两个项目都包含相同的com.ibm.ws.runtime.jar
.
这两个项目都是java 1.6。
请指教。感谢你的帮助。
解决方案
请加
<dependency>
<groupId>com.ibm.jaxws</groupId>
<artifactId>thinclient</artifactId>
<version>8.0.0<version>
<scope>provided</scope>
</dependency>
推荐阅读
- powerbi - 如何从表格中获取最小和最大日期?
- ruby-on-rails - 不正确地访问参数
- scala - 使用运行时配置使参数化的 ScalaCache 通用
- ios - 如何在 inputView 中设置默认日期值
- database - 如何处理没有业务密钥的数据仓库中心?
- java - 如何在 Redis 中存储 Tomcat 会话
- node.js - 在我的整个 express 应用上使用 Multer 中间件有什么缺点吗?
- amazon-web-services - 我可以创建不引用特定用户的 Cognito 兼容 JWT 吗?
- android - 在不取消导航的情况下使用 Intent 切换到 Android 上的 Google 地图
- javascript - 我该如何解决控制台。错误:这是一个空操作,但它表明您的应用程序中存在内存泄漏