https://qiita.com/ukiuni@github/items/536175b698a2fabf648d
javaでwebsocketを動かしてみようと思い、上記の方のコードをお借りして実行しようとしたのですが、eclipseにてインポートしたところ、インポートされたjavax.websocketが見つからないとエラーが出て、動かすことができません。もうひとつ、@Oncloseなどのインジェクションでもエラーが出ています。
サーバーはtomcat9を使用しているのですが、tomcat9では動かないのでしょうか。
上記の方の説明では、インポートすれば動くと書いてあったので、解決方法が全く検討がつきません。
どうすれば解決できるでしょうか。
java
1package org.ukiuni.inspect.websocket.action; 2 3import java.io.IOException; 4import java.util.ArrayList; 5import java.util.List; 6 7import javax.websocket.OnClose; 8import javax.websocket.OnError; 9import javax.websocket.OnMessage; 10import javax.websocket.OnOpen; 11import javax.websocket.Session; 12import javax.websocket.server.ServerEndpoint; 13 14@ServerEndpoint("/loadMessage") 15public class WebSocketEndpointAction { 16 public static List<Session> sessions = new ArrayList<Session>(); 17 18 @OnOpen 19 public void onOpen(Session session) { 20 // 開始時 21 sessions.add(session); 22 } 23 24 @OnMessage 25 public void onMessage(String message) throws IOException { 26 // クライアントからの受信時 27 for (Session session : sessions) { 28 session.getBasicRemote().sendText("{\"command\":\"message\", \"text\": \"" + message.replace("\", "\\").replace("\"", "\\"") + "\"}"); 29 } 30 } 31 32 @OnError 33 public void onError(Throwable t) throws IOException { 34 // エラー発生時 35 for (Session session : sessions) { 36 session.getBasicRemote().sendText("{\"command\":\"error\", \"text\": \"" + t.getMessage().replace("\", "\\").replace("\"", "\\"") + "\"}"); 37 } 38 } 39 40 @OnClose 41 public void onClose(Session session) { 42 // 完了時 43 sessions.remove(session); 44 } 45} 46
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。