使用 Eclipse NoClassDefFoundError 节俭 server/client
Thrift server/client with Eclipse NoClassDefFoundError
http://wiki.apache.org/thrift/Thrift%20%26%20Eclipse%20%26%20JUnit%20with%20TServlet
我是按照这个教程一步一步来的,直到他们执行客户端和服务器的部分。对于 serverExample.java 我添加了这些导入。
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TThreadPoolServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TTransportException;
对于 clientExample.java 我添加了这些导入:
import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.protocol.TBinaryProtocol;
当我 运行 服务器出现这些错误时:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.thrift.transport.TServerSocket.<clinit>(TServerSocket.java:37)
at example.ServerExample.run(ServerExample.java:14)
at java.lang.Thread.run(Thread.java:745)
at example.ServerExample.main(ServerExample.java:25)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4 more
当我 运行 客户端出现这些错误时:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.thrift.transport.TIOStreamTransport.<clinit>(TIOStreamTransport.java:38)
at example.ClientExample.main(ClientExample.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 2 more
以防万一,我已经添加了 eclipse thrift 插件。如果有人能帮助我,那就太棒了。
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
解释了我猜测的一切..只需添加 slf4j 依赖项
您缺少 slf4j.jar 库或库不在 class 路径中。
从 maven 下载最新的 jar 并将其更新到您的 class 路径
添加库没有解决问题。我重新安装了 Linux、Thrift 和 Eclipse,它解决了。感谢您的回答!
http://wiki.apache.org/thrift/Thrift%20%26%20Eclipse%20%26%20JUnit%20with%20TServlet
我是按照这个教程一步一步来的,直到他们执行客户端和服务器的部分。对于 serverExample.java 我添加了这些导入。
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TThreadPoolServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TTransportException;
对于 clientExample.java 我添加了这些导入:
import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.protocol.TBinaryProtocol;
当我 运行 服务器出现这些错误时:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.thrift.transport.TServerSocket.<clinit>(TServerSocket.java:37)
at example.ServerExample.run(ServerExample.java:14)
at java.lang.Thread.run(Thread.java:745)
at example.ServerExample.main(ServerExample.java:25)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4 more
当我 运行 客户端出现这些错误时:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.thrift.transport.TIOStreamTransport.<clinit>(TIOStreamTransport.java:38)
at example.ClientExample.main(ClientExample.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 2 more
以防万一,我已经添加了 eclipse thrift 插件。如果有人能帮助我,那就太棒了。
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
解释了我猜测的一切..只需添加 slf4j 依赖项
您缺少 slf4j.jar 库或库不在 class 路径中。
从 maven 下载最新的 jar 并将其更新到您的 class 路径
添加库没有解决问题。我重新安装了 Linux、Thrift 和 Eclipse,它解决了。感谢您的回答!