Erro java.lang.NoClassDefFoundError quando o servidor GlassFish recebe uma mensagem

Usando eclipse mars e glass fish, criei um servidor local. No mesmo pacote eu tenho uma class chamada MyClass.java. Toda vez que o servidor recebe uma mensagem, eu quero que a mensagem seja processada pelo MyClass (e seus methods). Isso é o que eu tenho:

package com.MT; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/serverendpointdemo") public class ServerEndpointDemo { @OnOpen public void handleOpen () { System.out.println("JAVA: Client is now connected..."); } @OnMessage public String handleMessage (String message) { System.out.println("JAVA: Received from client: "+ message); MyClass x = new MyClass(); String replyMessage = x.someMethod(message); //System.out.println("JAVA: Send to Client ==> "+ replyMessage); // String replyMessage = "echo "+ message; // System.out.println("JAVA: Send to client: "+ replyMessage); return replyMessage; } @OnClose public void handleClose() { System.out.println("JAVA: Client is now disconnected..."); } @OnError public void handleError (Throwable t) { t.printStackTrace(); } } 

O problema é que o compilador está me dando esta mensagem:

 2015-10-26T22:36:37.088-0400|Severe: java.lang.NoClassDefFoundError: edu.someClass at com.MT.MyClass.(MedicalTranscriptRev4.java:35) at com.MT.ServerEndpointDemo.handleMessage(ServerEndpointDemo.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.glassfish.tyrus.core.AnnotatedEndpoint.callMethod(AnnotatedEndpoint.java:520) at org.glassfish.tyrus.core.AnnotatedEndpoint.access$100(AnnotatedEndpoint.java:87) at org.glassfish.tyrus.core.AnnotatedEndpoint$WholeHandler$1.onMessage(AnnotatedEndpoint.java:619) at org.glassfish.tyrus.core.TyrusSession.notifyMessageHandlers(TyrusSession.java:576) at org.glassfish.tyrus.core.TyrusEndpointWrapper.onMessage(TyrusEndpointWrapper.java:871) at org.glassfish.tyrus.core.TyrusWebSocket.onMessage(TyrusWebSocket.java:212) at org.glassfish.tyrus.core.frame.TextFrame.respond(TextFrame.java:139) at org.glassfish.tyrus.core.ProtocolHandler.process(ProtocolHandler.java:807) at org.glassfish.tyrus.core.TyrusWebSocketEngine$TyrusReadHandler.handle(TyrusWebSocketEngine.java:562) at org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler.onDataAvailable(TyrusHttpUpgradeHandler.java:173) at org.apache.catalina.connector.InputBuffer$ReadHandlerImpl.processDataAvailable(InputBuffer.java:488) at org.apache.catalina.connector.InputBuffer$ReadHandlerImpl.onDataAvailable(InputBuffer.java:453) at org.glassfish.grizzly.http.io.InputBuffer.invokeHandler(InputBuffer.java:1089) at org.glassfish.grizzly.http.io.InputBuffer.invokeHandlerOnProperThread(InputBuffer.java:1080) at org.glassfish.grizzly.http.io.InputBuffer.append(InputBuffer.java:963) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:271) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassNotFoundException: edu.someClass at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1783) at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633) ... 36 more 

Eu tenho certeza que edu.someClass que é uma class em um arquivo JAR externo está no meu caminho de class. Mas ainda não está funcionando. Algum pensamento?

O problema é que o MyClass precisa ser compilado toda vez que o servidor recebe uma nova mensagem? Então eu fiz uma aula fictícia para testar se ele compilava todas as vezes e isso acontecia. Mas essa class fictícia não tem nenhum arquivo JARs (ou seja, não tem classs de import em comparação com o MyClass).

Aqui está a captura de canvas:

insira a descrição da imagem aqui