tyrusを使用してJavaで簡単なWebSocketサーバを作成しようとしています。
以下のようにソースを書きましたが、Eclipse上で実行してみたところ、"エラー内容"にあるclassNotFoundExceptionエラーが出ています。
対応方法をご教授いただけますでしょうか??
■エラー内容
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer
at org.glassfish.tyrus.spi.ServerContainerFactory.createServerContainer(ServerContainerFactory.java:85)
at org.glassfish.tyrus.server.Server.start(Server.java:222)
at EchoMain.main(EchoMain.java:17)
Caused by: java.lang.ClassNotFoundException: org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.glassfish.tyrus.spi.ServerContainerFactory.createServerContainer(ServerContainerFactory.java:80)
... 2 more
■tyrusの取得元
https://tyrus.java.net/dependencies.html
上記リンクのWebSocket RI archiveリンクからダウンロードし、api, ext,lib配下のjarを全てビルドパスに通しました。
■参考リンク
http://backpaper0.github.io/2013/07/14/websocket.html
EchoServerEndPoint.java
1 2 3 4import javax.websocket.OnClose; 5import javax.websocket.OnMessage; 6import javax.websocket.OnOpen; 7import javax.websocket.Session; 8import javax.websocket.server.ServerEndpoint; 9 10@ServerEndpoint("/echo") 11public class EchoServerEndPoint { 12 13 @OnOpen 14 public void onOpen(Session session) { 15 System.out.println("[open] " + session); 16 } 17 18 @OnMessage 19 public String onMessage(String message, Session session) { 20 System.out.println("[" + message + "] " + session); 21 return message; 22 } 23 24 @OnClose 25 public void onClose(Session session) { 26 System.out.println("[close] " + session); 27 } 28}
EchoMain.java
1import java.io.IOException; 2import java.util.Collections; 3import java.util.Map; 4 5import javax.websocket.DeploymentException; 6 7import org.glassfish.tyrus.server.Server; 8 9public class EchoMain { 10 11 public static void main(String[] args) throws DeploymentException, 12 IOException { 13 Map<String, Object> properties = Collections.emptyMap(); 14 Server server = new Server("localhost", 8080, "/ws", properties, 15 EchoServerEndPoint.class); 16 try { 17 server.start(); 18 System.in.read(); 19 } finally { 20 server.stop(); 21 } 22 } 23}