2015-11-03 54 views
0

我想在Tomcat的上下文中運行Web套接字客戶端。所以情況是,我在Tomcat上部署了一個Websocket服務器端點,作爲App-1的一部分。也部署在Tomcat上的App-2(顯然是在不同的上下文根目錄下)想要發送消息。網絡套接字客戶端不能在Tomcat工作

如果我將它作爲獨立的主方法運行,App-2中的類可以正常工作。但是當它在tomcat的上下文中運行時,它會給出下面的錯誤。 (我用泰魯斯 - 1.9作爲JSR-356 IMPL)

java.util.ServiceConfigurationError: javax.websocket.ContainerProvider: Provider org.apache.tomcat.websocket.WsContainerProvider not a subtype 
at java.util.ServiceLoader.fail(ServiceLoader.java:239) 
at java.util.ServiceLoader.access$300(ServiceLoader.java:185) 
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) 
at java.util.ServiceLoader$1.next(ServiceLoader.java:480) 
at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:66) 

上述異常被拋出這一行: WebSocketContainer container = ContainerProvider.getWebSocketContainer();

就如何解決這個任何建議將是非常有益的。

回答

1

明白了。問題是,我包括Tyrus獨立客戶端來導入客戶端軟件包。 我這個

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>7.0</version> 
</dependency> 

它解決了問題,更換了下面

<dependency> 
    <groupId>org.glassfish.tyrus.bundles</groupId> 
    <artifactId>tyrus-standalone-client</artifactId> 
    <version>1.9</version> 
</dependency> 

0

,僅供參考:

在一個的Debian或Ubuntu配置中運行的Tomcat ,網頁套接字罐不與標準安裝Tomcat包裝。 (見https://bugs.launchpad.net/ubuntu/+source/tomcat7/+bug/1326687

因此,爲了解決這個問題:

  1. 包括在你的webapp WebSocket的罐子,這應該是來自Tomcat本身,否則將無法正常工作。在你的webapp lib文件夾中有一個重複的jar會阻止tomcat正常啓動。
  2. 複製並在java/Tomcat安裝文件夾鏈接2個的WebSocket罐子

    CP javax.websocket-API-1.1.jar的/ usr /共享/爪哇/

    LN -s .. /../java/javax.websocket-api-1.1.jar /usr/share/tomcat7/lib/javax.websocket-api-1.1.jar

    cp tomcat7-websocket.jar/usr/share/java/

    ln -s ../../java/tomcat7-websocket.jar /usr/share/tomcat7/lib/tomcat7-websocket.jar

您可以找到JAR文件:

https://mvnrepository.com/artifact/javax.websocket/javax.websocket-api

https://mvnrepository.com/artifact/org.apache.tomcat/tomcat7-websocket

0

這個問題是固定的我,當我從Tomcat 7切換到Tomcat 8。

我在Eclipse中通過服務器選項卡運行Web應用程序時遇到此問題。我在Tomcat 7上運行,下載了Tomcat 8並運行後,此問題消失了。

相關問題