2013-07-30 109 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

相關問題