哪个版本的jetty与cometd-3.0.2兼容

时间:2014-11-03 22:05:53

标签: java jetty cometd

目前我正在使用 cometd 3.0.2 (最新版本)。尝试进行简单的握手会给我以下错误:

使用 jetty 7.4.4

java.lang.NoClassDefFoundError: org/eclipse/jetty/client/api/ContentProvider

使用 jetty 9.2.3

java.lang.NoClassDefFoundError: org/eclipse/jetty/util/ajax/JSON

这是我尝试运行的代码:

import java.util.HashMap;
import java.util.Map;
import org.cometd.client.BayeuxClient;
import org.cometd.client.transport.ClientTransport;
import org.cometd.client.transport.LongPollingTransport;
import org.eclipse.jetty.client.HttpClient;

public class MyClass {

    public static void main(String[] args) throws Exception {

        // Create (and eventually set up) Jetty's HttpClient:
        HttpClient httpClient = new HttpClient();
        // Here set up Jetty's HttpClient, for example:
        // httpClient.setMaxConnectionsPerAddress(2);
        httpClient.start();

        // Prepare the transport
        Map<String, Object> options = new HashMap<String, Object>();
        ClientTransport transport = new LongPollingTransport(options, httpClient);

        BayeuxClient client = new BayeuxClient("http://localhost:8080/cometd", transport);
        client.handshake();
        boolean handshaken = client.waitFor(1000, BayeuxClient.State.CONNECTED);
        if (handshaken) {
            System.out.println("Yey");
        }
    }
}

有谁知道哪个 jetty 与最新的 cometd 兼容?或任何其他 cometd

1 个答案:

答案 0 :(得分:1)

CometD 3适用于任何Servlet 3.0或更高版本的Servlet容器。 Jetty 9.2.x是推荐使用的Servlet容器。

话虽如此,Joakim说CometD依赖于其他库是正确的,因此您应该使用构建工具为您完成这项工作。 Maven是推荐的工具。

查看更新后的installation instructionsprimertutorials即可开始使用。

我建议您按照入门说明进行操作。即使你不喜欢Maven,你可以暂时安装它,按照底漆,一旦你有底漆产生的骨架CometD应用程序,如果你愿意,你可以卸载Maven(但是你可以自己去构建你的应用程序)。