代码报错如下,springboot做的webservice服务,测试发布的时候,为什么报jar包找不到?

报错

20:45:16.837 [main] DEBUG org.apache.cxf.resource.DefaultResourceManager - resolving resource <org.apache.cxf.wsdl11.WSDLManagerImpl/bus> type <interface org.apache.cxf.Bus>
20:45:16.837 [main] DEBUG org.apache.cxf.resource.DefaultResourceManager - resolving resource <null> type <interface org.apache.cxf.Bus>
20:45:16.932 [main] DEBUG org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory - Creating Jetty HTTP Server Engine for port 8000.
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/SessionManager
    at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.getOrCreate(JettyHTTPServerEngineFactory.java:116)
    at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.createJettyHTTPServerEngine(JettyHTTPServerEngineFactory.java:268)
    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.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:131)
    at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:84)
    at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:63)
    at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:170)
    at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
    at com.suiwei.webservice.Test.main(Test.java:16)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.SessionManager
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 11 more

Process finished with exit code 1

依赖
image.png

发布服务代码,运行该代码,控制台爆出了如上错误

public class Test {
    public static void main(String[] args){
        //发布服务的工厂
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        //设置服务地址
        factory.setAddress("http://localhost:8000/ws/hello");
        //设置服务类
        factory.setServiceBean(new HelloServiceImpl());
        //发布服务
        factory.create();
        System.out.println("发布成功");
    }
}

服务代码

public class HelloServiceImpl implements HelloService {

    public String sayHello(String name){
        return name+"-success!";
    }
}

服务接口

import javax.jws.WebService;
/**
 * 对外发布服务的接口@WebService标识*/
@WebService
public interface HelloService {
    /**
     * 对外发布服务的接口的方法
     */
    public String sayHello(String name);
}
阅读 1.8k
1 个回答

经过我的测试,你应该是引错了依赖,使用如下依赖可以正常运行你的代码:

<!-- 应该是这些依赖,你的依赖可能适用于普通的spring项目而非springboot -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-websocket</artifactId>
    <version>3.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http-jetty</artifactId>
    <version>3.5.5</version>
</dependency>

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏