**16-Jul-2016 15:50:39.774 SEVERE [localhost-startStop-1]
org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
javax.servlet.ServletException: javax.websocket.DeploymentException: The path [websocket] is not valid.
at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5292)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.websocket.DeploymentException: The path [websocket] is not valid.
at org.apache.tomcat.websocket.server.UriTemplate.<init>(UriTemplate.java:48)
at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:200)
at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:279)
at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:120)
... 12 more**
的WebSocket的代碼(JAVA):產生的原因:javax.websocket.DeploymentException:路徑[的WebSocket]無效
**import java.io.IOException;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.OnClose;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.*;
@ServerEndpoint("webDemo/chat")
public class ChatEntpoint{
private static final String GUEST_PREFIX = "訪客";
private static final AtomicInteger connectionIds = new AtomicInteger(0);
private static final Set<ChatEntpoint> clientSet = new CopyOnWriteArraySet<>();
private final String nickname;
private Session session;
public ChatEntpoint(){
nickname = GUEST_PREFIX + connectionIds.getAndIncrement();
}
@OnOpen
public void start(Session session){
this.session = session;
clientSet.add(this);
String message = String.format("【%s %s】",nickname,"加入了聊天室!");
broadcast(message);
}
@OnClose
public void end(){
clientSet.remove(this);
String message = String.format("【%s %s】",nickname,"離開了聊天室!");
broadcast(message);
}
@OnMessage
public void incoming(String message){
String filteredMessage = String.format("【%s %s】",nickname,filter(message));
broadcast(filteredMessage);
}
@OnError
public void OnError(Throwable t) throws Throwable{
System.out.println("WebSocket服務器端錯誤" + t);
}
private static void broadcast(String msg){
for(ChatEntpoint client:clientSet){
try{
synchronized(client){
client.session.getBasicRemote().sendText(msg);
}
}
catch(IOException e){
System.out.println("聊天錯誤,向客戶端"+client+"發送消息出現錯誤!");
clientSet.remove(client);
try{
client.session.close();
}
catch(IOException e1){}
String message = String.format("【%s %s】",client.nickname,"已經被斷開了連接!");
broadcast(message);
}
}
}
private static String filter(String message){
if(message == null){
return null;
}
char content[] = new char[message.length()];
message.getChars(0,message.length(),content,0);
StringBuilder result = new StringBuilder(content.length + 50);
for(int i=0;i<content.length;i++){
switch(content[i]){
case '<':
result.append("<");
break;
case '>':
result.append(">");
break;
case '&':
result.append("&");
break;
case '"':
result.append(""");
break;
default:
result.append(content[i]);
}
}
return (result.toString());
}
}**
我嘗試建立一個實時同步的網站。我已經下載了tomcat 8.0,並且在運行web時瀏覽器錯誤404中構建了websocket服務器。日誌寫入:
我在net上搜索了很長時間,但沒有用。請幫助或嘗試提供一些想法如何將其歸檔。
計算機配置: 窗口-7 64 i5-3230M RAM 4G
請使用[編輯]鏈接來解釋這個代碼是如何工作的,不只是給代碼,一個解釋更有可能幫助未來的讀者。另見[回答]。 [源(http://stackoverflow.com/users/5244995) –