Jetty无法从ClassNotFoundException开始:org.eclipse.jetty.client.ht



我正在尝试创建一个包含单个WebSocket的战争文件。由于某种原因,Jetty想要HTTPClient,即使我只想拥有服务器端逻辑。httpclient在" Jetty-Client-9.4.0.v20161208.jar"文件中存在于Jetty下。但这未在状态转储(Jetty.server.dumpafterstart = true)中列出。

web.xml

<web-app>
  <display-name>WebSocketApp</display-name>
  <servlet>
    <servlet-name>wsservlet</servlet-name>
    <servlet-class>com.example.test.MyJettyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>wsservlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

插座:

@ServerEndpoint("/control")
public class ControlSocket {
    @OnOpen
    public void onOpen(Session session) {
        System.out.println("WebSocket opened: " + session.getId());
    }
    @OnMessage
    public void onMessage(String txt, Session session) throws IOException {
        System.out.println("Message received: " + txt);
        session.getBasicRemote().sendText(txt.toUpperCase());
    }
    @OnClose
    public void onClose(CloseReason reason, Session session) {
        System.out.println("Closing a WebSocket due to " + reason.getReasonPhrase());
    }
}

gradle构建文件:

dependencies {
    compile 'org.projectlombok:lombok:1.16.2'
    compile group: 'javax.websocket', name: 'javax.websocket-api', version: '1.1'
    compile group: 'org.yaml', name: 'snakeyaml', version: '1.16'
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.21'
    compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
    testCompile 'junit:junit:4.11'  
}

我认为依赖关系有问题。但是到底是什么?我应该包括Websocket实施罐吗?如果是,那为什么?

如果使用Jetty-Distribution,请添加client模块。

$ cd /path/to/mybase
$ java -jar /path/to/jetty-dist/start.jar --add-to-start=client

这在码头9.4.1 btw。

中得到了改善。

最新更新