Hi Kim,
Thanks for the observation.
As BaseX WebSocket support is tightly coupled with Jetty, newer WAR files cannot be deployed with other web servers anymore (namely, Tomcat, Jboss, possibly others). I’ve opened an issue to get this fixed in a future release [1].
Best, Christian
[1] https://github.com/BaseXdb/basex/issues/2037
On Wed, Aug 25, 2021 at 10:25 PM Kim Galeazzi kim.galeazzi@inspirage.com wrote:
Launching the dba application in BaseX 9.5 and above deployed on Tomcat 9.0 throws an error:
*Exception*
javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
*Root Cause*
java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/api/WebSocketAdapter
java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:760)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2478)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:870)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1371)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
org.basex.query.func.session.SessionFn.session(SessionFn.java:31) org.basex.query.func.session.SessionGet.value(SessionGet.java:17) org.basex.query.expr.ParseExpr.iter(ParseExpr.java:46) org.basex.query.expr.ParseExpr.ebv(ParseExpr.java:71) org.basex.query.expr.If.expr(If.java:181) org.basex.query.expr.If.iter(If.java:161) org.basex.query.scope.MainModule.iter(MainModule.java:97) org.basex.query.QueryContext.iter(QueryContext.java:326)
org.basex.http.restxq.RestXqResponse.serialize(RestXqResponse.java:84)
org.basex.http.web.WebResponse.create(WebResponse.java:66) org.basex.http.restxq.RestXqServlet.run(RestXqServlet.java:69) org.basex.http.BaseXServlet.service(BaseXServlet.java:65) javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
*Root Cause*
java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.api.WebSocketAdapter
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1407)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:760)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2478)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:870)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1371)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
org.basex.query.func.session.SessionFn.session(SessionFn.java:31) org.basex.query.func.session.SessionGet.value(SessionGet.java:17) org.basex.query.expr.ParseExpr.iter(ParseExpr.java:46) org.basex.query.expr.ParseExpr.ebv(ParseExpr.java:71) org.basex.query.expr.If.expr(If.java:181) org.basex.query.expr.If.iter(If.java:161) org.basex.query.scope.MainModule.iter(MainModule.java:97) org.basex.query.QueryContext.iter(QueryContext.java:326)
org.basex.http.restxq.RestXqResponse.serialize(RestXqResponse.java:84)
org.basex.http.web.WebResponse.create(WebResponse.java:66) org.basex.http.restxq.RestXqServlet.run(RestXqServlet.java:69) org.basex.http.BaseXServlet.service(BaseXServlet.java:65) javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
I tried adding the Ecplise websocket API jar to the lib folder without success. Any ideas?
We rely on the RESTXQ for our implementations and find the dba web application very convenient for accessing the logs and managing the database.
Thank you.
*Kim Galeazzi |* Manager, Solution Architecture, Oracle/Agile PLM Consulting
Office: 408-680-8837 <%28408%29%20680-8837> | Mobile: 408-466-2121 <%28408%29%20466-2121> | Campbell, CA
*This email communication is considered business confidential and intended for the original recipient of this email only.*