2013-07-30 106 views
2

我正在尝试使用Jetty与远程服务器通信,使用websockets。 我正在Eclipse中开发它,但我无法编译任何示例代码。 这就是我所做的在类路径中添加库后找不到Jetty WebSocket类

我下载了最新版本的Jetty,并且在类路径中添加了start.jar。 这就是我所包含的样本类

import org.eclipse.jetty.websocket.api.Session; 
import org.eclipse.jetty.websocket.api.StatusCode; 
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose; 

多一些。问题是Eclipse无法解析这些导入。我该怎么办?

+0

如果您想编写Jetty WebSocket服务器或Jetty WebSocket客户端,则不清楚该问题。无论哪种方式,您都需要“start.jar”以外的jar。 –

回答

8

从项目中删除start.jar,这只是启动独立Jetty分发的引导程序jar。

您需要的JAR位于${jetty.dist}/lib/websockets/目录中。

[[email protected] jetty-distribution-9.0.4.v20130625]$ ls -1 lib/websocket/ 
websocket-api-9.0.4.v20130625.jar 
websocket-client-9.0.4.v20130625.jar 
websocket-common-9.0.4.v20130625.jar 
websocket-server-9.0.4.v20130625.jar 
websocket-servlet-9.0.4.v20130625.jar 

所有的WebSocket应用

始终在您的项目:

  • lib/websocket/websocket-api-9.0.4.v20130625.jar

的WebSocket客户端要求

以下内容添加到您的项目:

  • lib/websocket/websocket-client-9.0.4.v20130625.jar
  • lib/websocket/websocket-common-9.0.4.v20130625.jar
  • lib/jetty-io-9.0.4.v20130625.jar
  • lib/jetty-util-9.0.4.v20130625.jar

WebSocket的Servlet的要求

如果你正在写,这将挂接到您的WAR/WebApp的一个WebSocket的服务器,那么你需要:

  • websocket-servlet-9.0.4.v20130625.jar

你将永远不会需要websocket-server-9.0.4.v20130625.jar,因为这是一个内部/实现特定的JAR Jetty服务器用于提供对WebSockets的支持。

+0

非常好,非常感谢你。简洁明了! – mark

+0

一个问题:当我尝试用码头类的线程启动应用程序时,出现此错误“该项目未建立构建路径不完整无法找到org.eclipse.jetty.util.component.ContainerLifeCycle的类文件,第二个“无法解析类型org.eclipse.jetty.util.component.ContainerLifeCycle,它是间接引用的编辑需要的.class文件“修复构建路径然后尝试构建这个项目”:我应该做更多的事情吗? – mark

+0

解决,最后2个罐子需要。但我得到这个运行时错误异常在线程“主”java.lang.UnsupportedClassVersionError:org/eclipse/jetty/websocket /客户端/ WebSocketClient:不支持major.minor版本51.0,真的不知道它是什么 – mark

0

请通过客户端API列出的jar必须在您的类路径中。

+0

你能更精确吗?我不明白对不起 – mark

+0

假设你是Java新手。您的课程必须能够访问教程中列出的jar文件中捆绑的其他.class文件。我提供的链接有一个websocket客户端的示例实现。所有你需要做的是复制粘贴并运行。您可能需要从search.maven.org下载jar文件并将其添加到项目库中。 – JVXR

+0

当前项目超过10K行:无论如何..我已经粘贴了这个例子,但org.eclipse.jetty.websocket.client.ClientUpgradeRequest; org.eclipse.jetty.websocket.client.WebSocketClient;仍然不能解决...我从那里下载jetty http://download.eclipse.org/jetty/stable-9/dist/ – mark

相关问题