pom.xml:
<Import-Package>
org.eclipse.jetty.websocket.server,*
</Import-Package>MANIFEST.MF:
Import-Package: org.eclipse.jetty.websocket.server;version="[9.2,10)"日志中的异常:
org.eclipse.jetty.websocket.server.WebSocketServerFactory : javax.servlet.ServletException: java.lang.ClassNotFoundException
Felix Web控制台:
从org.eclipse.jetty.websocket.server、version=9.2.6从org.apache.felix.http.jetty导入包(39)
org.eclipse.jetty.websocket.servlet.WebSocketServletFactory:中的相关代码
Class<WebSocketServletFactory> wssf = (Class<WebSocketServletFactory>)loader
.loadClass("org.eclipse.jetty.websocket.server.WebSocketServerFactory");请帮我找出我在这里做错了什么?
发布于 2015-03-30 09:53:33
我遇到了同样的问题,并在Felix邮件列表上询问。正如Balazs所指出的,这与“装载机”部分有关。http://www.mail-archive.com/users%40felix.apache.org/msg16222.html上的线程包含一个ContextClassLoader使用示例的URL。
感谢保罗,基本上你需要这样的东西:
// Cache the current classloader
ClassLoader ccl = Thread.currentThread().getContextClassLoader();
// Find the classloader used by the bundle providing jetty
ClassLoader classLoader = jettyBundle.getClassLoader();
// Set the classloader
Thread.currentThread().setContextClassLoader(classLoader);
// Register the servlet
httpService.registerServlet("/servletName", new MyWebSocketServlet(), null, null);
// Restore the classloader
Thread.currentThread().setContextClassLoader(ccl);有关更完整的代码,请参见示例。
https://stackoverflow.com/questions/29099699
复制相似问题