Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/SessionManager

最近在学习webService,使用CXF开发REST风格的服务

启动这个链接的项目报错:https://my.oschina.net/huangyong/blog/294324,我的代码跟他所示一样

错误代码如下:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/SessionManager

at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.getOrCreate(JettyHTTPServerEngineFactory.java:117)

at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.createJettyHTTPServerEngine(JettyHTTPServerEngineFactory.java:273)

at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.retrieveEngine(JettyHTTPDestination.java:121)

at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.finalizeConfig(JettyHTTPDestination.java:154)

at org.apache.cxf.transport.http.HTTPTransportFactory.getDestination(HTTPTransportFactory.java:281)

at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:84)

at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:63)

at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:173)

at com.medex.service.Server.main(Server.java:31)

Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.SessionManager

at java.net.URLClassLoader$1.run(Unknown Source)

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

... 9 more

我不太懂jetty,我是直接在main方法上右键运行(tomcat)了,谢谢。

评论区

JFinal

2018-10-12 09:21

首先要选择是用 tomcat 还是 jetty

从异常来看你的项目中有 jetty 依赖,但你用的是 tomcat 启动,所以要将 jetty 的东西删干净

如果你用的是 Jetty ,就不能用 tocmat 来启动。同时要注意将 jetty-server 升级到 2011.8 这个版本,jfinal 升级到 3.5 版

花儿对我笑

2018-10-12 09:40

非常感谢你的回答。
我把pom文件的
org.apache.cxf
cxf-rt-transports-http-jetty
3.1.6

改为了
org.apache.cxf
cxf-rt-transports-http
3.1.11

运行时不再报jetty相关异常,出现了
Exception in thread "main" org.apache.cxf.service.factory.ServiceConstructionException
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:217)
at com.medex.service.Server.main(Server.java:33)
Caused by: java.io.IOException: Cannot find any registered HttpDestinationFactory from the Bus.
at org.apache.cxf.transport.http.HTTPTransportFactory.getDestination(HTTPTransportFactory.java:269)
at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:84)
at org.apache.cxf.endpoint.ServerImpl.(ServerImpl.java:63)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:173)
... 1 more
下面是我pom文件主要的部分:


org.apache.cxf
cxf-rt-frontend-jaxrs
3.1.11


org.apache.cxf
cxf-rt-transports-http
3.1.11





org.apache.cxf
cxf-rt-rs-client
3.1.11



org.springframework.boot
spring-boot-starter-jersey
1.5.16.RELEASE



org.codehaus.jackson
jackson-jaxrs
1.9.13

花儿对我笑

2018-10-12 09:51

@JFinal 忘记艾特你了。

JFinal

2018-10-12 09:56

异常中已经没有了 Jetty,也没有 jfinal 的影子,而我对 cxf 也不熟悉,建议看一下 cxf 的官方文档,找到一两个使用的 demo ,参考着用

花儿对我笑

2018-10-12 10:55

@JFinal 好的,谢谢你。

热门反馈

扫码入社