Incompatibility with Tomcat 10
Sunday, 3 April 2022 · 6 messages · last reply 6 Apr 2022
MB
Marc Balston3 Apr 2022 22:45 #
Hello,
I've been successfully running BaseX on Amazon AWS using Tomcat 8.5, but I've been looking to upgrade my server to Tomcat 10.0.2. However, I've run into an issue: BaseX does not startup and from the logs the cause appears to be a missing class: java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener
I believe this is because there was a change between Tomcat 9.x and Tomcat 10 which led to a renaming of the javax.* package to jakata.* (related to a change in the servlet API version) see here for a discussion: https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet
Is my understanding correct and is this a known issue?
If it is a genuine incompatibility, it would be useful to mention this in the documentation (Web Application - BaseX Documentation)
Thanks
Marc
Marc Balston
CG
Christian Grün4 Apr 2022 13:26 #
Hi Marc,
I remember there were problem with a past release of BaseX and Tomcat. Which version of BaseX are you using?
Best,
Christian
Quoted text · Marc Balston · 20 lines
On Sun, Apr 3, 2022 at 10:45 PM Marc Balston <mcbalston at yahoo.com> wrote: > > Hello, > > I've been successfully running BaseX on Amazon AWS using Tomcat 8.5, but I've been looking to upgrade my server to Tomcat 10.0.2. > However, I've run into an issue: BaseX does not startup and from the logs the cause appears to be a missing class: > java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener > > I believe this is because there was a change between Tomcat 9.x and Tomcat 10 which led to a renaming of the javax.* package to jakata.* (related to a change in the servlet API version) see here for a discussion: https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet > > Is my understanding correct and is this a known issue? > If it is a genuine incompatibility, it would be useful to mention this in the documentation (Web Application - BaseX Documentation) > > Thanks > Marc > > > > Marc Balston >
MB
Marc Balston4 Apr 2022 14:34 #
Hi Christian,
I was using BaseX 9.5 on Tomcat 8.5 and it was fine.
On Tomcat 10.0.2 I couldn't get either BaseX 9.5 or 9.7 to work (same issue). I now have Tomcat 9.0.62 running and I've successfully run both BaseX 9.5 and 9.7. RegardsMarc
Quoted text · Christian Grün · 1 line
On Monday, 4 April 2022, 12:26:32 BST, Christian Grün <christian.gruen at gmail.com> wrote:
Hi Marc,
I remember there were problem with a past release of BaseX and Tomcat. Which version of BaseX are you using?
Best,
Christian
Quoted text · Marc Balston · 20 lines
On Sun, Apr 3, 2022 at 10:45 PM Marc Balston <mcbalston at yahoo.com> wrote: > > Hello, > > I've been successfully running BaseX on Amazon AWS using Tomcat 8.5, but I've been looking to upgrade my server to Tomcat 10.0.2. > However, I've run into an issue: BaseX does not startup and from the logs the cause appears to be a missing class: > java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener > > I believe this is because there was a change between Tomcat 9.x and Tomcat 10 which led to a renaming of the javax.* package to jakata.* (related to a change in the servlet API version) see here for a discussion: https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet > > Is my understanding correct and is this a known issue? > If it is a genuine incompatibility, it would be useful to mention this in the documentation (Web Application - BaseX Documentation) > > Thanks > Marc > > > > Marc Balston >
CG
Christian Grün5 Apr 2022 18:47 #
Hi Marc,
Thanks for testing and the StackOverflow links.
I think you’ve already discovered the weak spot, which is also documented in the Tomcat Migration Guide [1]: The javax.servlet packages are not available in Tomcat 10 anymore, so the import statements of BaseX would need to be updated.
As BaseX comes with Jetty as standard web server, which relies on the javax.servlet package, the Open-Source version of BaseX will remain unchanged; but we can offer a custom Tomcat 10 version of BaseX for those who are using BaseX commercially.
We’ll do some tests soon to confirm the assumption and update the documentation [2].
Best,
Christian
[1] https://tomcat.apache.org/migration-10.html
[2] https://github.com/BaseXdb/basex/issues/2085
Quoted text · Marc Balston · 47 lines
On Mon, Apr 4, 2022 at 2:34 PM Marc Balston <mcbalston at yahoo.com> wrote: > > Hi Christian, > > I was using BaseX 9.5 on Tomcat 8.5 and it was fine. > > On Tomcat 10.0.2 I couldn't get either BaseX 9.5 or 9.7 to work (same issue). > > I now have Tomcat 9.0.62 running and I've successfully run both BaseX 9.5 and 9.7. > > Regards > Marc > > > On Monday, 4 April 2022, 12:26:32 BST, Christian Grün <christian.gruen at gmail.com> wrote: > > > Hi Marc, > > I remember there were problem with a past release of BaseX and Tomcat. > Which version of BaseX are you using? > > Best, > Christian > > > > On Sun, Apr 3, 2022 at 10:45 PM Marc Balston <mcbalston at yahoo.com> wrote: > > > > Hello, > > > > I've been successfully running BaseX on Amazon AWS using Tomcat 8.5, but I've been looking to upgrade my server to Tomcat 10.0.2. > > However, I've run into an issue: BaseX does not startup and from the logs the cause appears to be a missing class: > > java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener > > > > I believe this is because there was a change between Tomcat 9.x and Tomcat 10 which led to a renaming of the javax.* package to jakata.* (related to a change in the servlet API version) see here for a discussion: https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet > > > > Is my understanding correct and is this a known issue? > > If it is a genuine incompatibility, it would be useful to mention this in the documentation (Web Application - BaseX Documentation) > > > > Thanks > > Marc > > > > > > > > Marc Balston > >
CG
Christian Grün5 Apr 2022 18:54 #
Maybe you can resolve the issue by following the instructions given on the homepage of Tomcat; did you try that?
“Applications that run on Tomcat 9 and earlier will not run on Tomcat 10 without changes. Java EE based applications designed for Tomcat 9 and earlier may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat will automatically convert them to Jakarta EE and copy them to the webapps directory. This conversion is performed using the Apache Tomcat migration tool for Jakarta EE tool which is also available as a separate download for off-line use.” [1]
Best,
Christian
[1] https://tomcat.apache.org/
Quoted text · Christian Grün · 73 lines
On Tue, Apr 5, 2022 at 6:47 PM Christian Grün <christian.gruen at gmail.com> wrote: > > Hi Marc, > > Thanks for testing and the StackOverflow links. > > I think you’ve already discovered the weak spot, which is also > documented in the Tomcat Migration Guide [1]: The javax.servlet > packages are not available in Tomcat 10 anymore, so the import > statements of BaseX would need to be updated. > > As BaseX comes with Jetty as standard web server, which relies on the > javax.servlet package, the Open-Source version of BaseX will remain > unchanged; but we can offer a custom Tomcat 10 version of BaseX for > those who are using BaseX commercially. > > We’ll do some tests soon to confirm the assumption and update the > documentation [2]. > > Best, > Christian > > [1] https://tomcat.apache.org/migration-10.html > [2] https://github.com/BaseXdb/basex/issues/2085 > > > On Mon, Apr 4, 2022 at 2:34 PM Marc Balston <mcbalston at yahoo.com> wrote: > > > > Hi Christian, > > > > I was using BaseX 9.5 on Tomcat 8.5 and it was fine. > > > > On Tomcat 10.0.2 I couldn't get either BaseX 9.5 or 9.7 to work (same issue). > > > > I now have Tomcat 9.0.62 running and I've successfully run both BaseX 9.5 and 9.7. > > > > Regards > > Marc > > > > > > On Monday, 4 April 2022, 12:26:32 BST, Christian Grün <christian.gruen at gmail.com> wrote: > > > > > > Hi Marc, > > > > I remember there were problem with a past release of BaseX and Tomcat. > > Which version of BaseX are you using? > > > > Best, > > Christian > > > > > > > > On Sun, Apr 3, 2022 at 10:45 PM Marc Balston <mcbalston at yahoo.com> wrote: > > > > > > Hello, > > > > > > I've been successfully running BaseX on Amazon AWS using Tomcat 8.5, but I've been looking to upgrade my server to Tomcat 10.0.2. > > > However, I've run into an issue: BaseX does not startup and from the logs the cause appears to be a missing class: > > > java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener > > > > > > I believe this is because there was a change between Tomcat 9.x and Tomcat 10 which led to a renaming of the javax.* package to jakata.* (related to a change in the servlet API version) see here for a discussion: https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet > > > > > > Is my understanding correct and is this a known issue? > > > If it is a genuine incompatibility, it would be useful to mention this in the documentation (Web Application - BaseX Documentation) > > > > > > Thanks > > > Marc > > > > > > > > > > > > Marc Balston > > >
MB
Marc Balston6 Apr 2022 02:18 #
Hi Christian,
Many thanks. I hadn't tried that, but I'll definitely give it a go. It does sound like it will be a simple fix. RegardsMarc M. Balston M: +44 7786 263 906
Quoted text · Christian Grün · 1 line
On Tuesday, 5 April 2022, 17:54:45 BST, Christian Grün <christian.gruen at gmail.com> wrote:
Maybe you can resolve the issue by following the instructions given on the homepage of Tomcat; did you try that?
“Applications that run on Tomcat 9 and earlier will not run on Tomcat 10 without changes. Java EE based applications designed for Tomcat 9 and earlier may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat will automatically convert them to Jakarta EE and copy them to the webapps directory. This conversion is performed using the Apache Tomcat migration tool for Jakarta EE tool which is also available as a separate download for off-line use.” [1]
Best,
Christian
[1] https://tomcat.apache.org/
Quoted text · Christian Grün · 73 lines
On Tue, Apr 5, 2022 at 6:47 PM Christian Grün <christian.gruen at gmail.com> wrote: > > Hi Marc, > > Thanks for testing and the StackOverflow links. > > I think you’ve already discovered the weak spot, which is also > documented in the Tomcat Migration Guide [1]: The javax.servlet > packages are not available in Tomcat 10 anymore, so the import > statements of BaseX would need to be updated. > > As BaseX comes with Jetty as standard web server, which relies on the > javax.servlet package, the Open-Source version of BaseX will remain > unchanged; but we can offer a custom Tomcat 10 version of BaseX for > those who are using BaseX commercially. > > We’ll do some tests soon to confirm the assumption and update the > documentation [2]. > > Best, > Christian > > [1] https://tomcat.apache.org/migration-10.html > [2] https://github.com/BaseXdb/basex/issues/2085 > > > On Mon, Apr 4, 2022 at 2:34 PM Marc Balston <mcbalston at yahoo.com> wrote: > > > > Hi Christian, > > > > I was using BaseX 9.5 on Tomcat 8.5 and it was fine. > > > > On Tomcat 10.0.2 I couldn't get either BaseX 9.5 or 9.7 to work (same issue). > > > > I now have Tomcat 9.0.62 running and I've successfully run both BaseX 9.5 and 9.7. > > > > Regards > > Marc > > > > > > On Monday, 4 April 2022, 12:26:32 BST, Christian Grün <christian.gruen at gmail.com> wrote: > > > > > > Hi Marc, > > > > I remember there were problem with a past release of BaseX and Tomcat. > > Which version of BaseX are you using? > > > > Best, > > Christian > > > > > > > > On Sun, Apr 3, 2022 at 10:45 PM Marc Balston <mcbalston at yahoo.com> wrote: > > > > > > Hello, > > > > > > I've been successfully running BaseX on Amazon AWS using Tomcat 8.5, but I've been looking to upgrade my server to Tomcat 10.0.2. > > > However, I've run into an issue: BaseX does not startup and from the logs the cause appears to be a missing class: > > > java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener > > > > > > I believe this is because there was a change between Tomcat 9.x and Tomcat 10 which led to a renaming of the javax.* package to jakata.* (related to a change in the servlet API version) see here for a discussion: https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet > > > > > > Is my understanding correct and is this a known issue? > > > If it is a genuine incompatibility, it would be useful to mention this in the documentation (Web Application - BaseX Documentation) > > > > > > Thanks > > > Marc > > > > > > > > > > > > Marc Balston > > >
Written for BaseX 9.7. BaseX may have changed since: please check the current documentation.
⚡Generated with XQuery