Closed manxon closed 9 months ago
@manxon Yes, indeed. The current plan is for TEAM Engine 6.0 to support a more recent version of Tomcat and Java. We are currently experimenting but focused work on developing TEAM Engine 6.0 will start in Q3 of 2023.
Thank you @ghobona I'll give it a try and you know =)
Precondition: #511
mvn clean install site -Pintegration-tests
Following branch was created in ets-ogcapi-features10 for testing purposes: https://github.com/opengeospatial/ets-ogcapi-features10/tree/java17Tomcat10TeamEngine6
Configured Java 17 and Tomcat 10 in Dockerfile: https://github.com/opengeospatial/ets-ogcapi-features10/commit/d205a1cdafb0be859af6e9c8fba32f55b3e1bbae
Following errors are logged during startup of Tomcat 10:
e2417f> 04-May-2023 16:23:13.511 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/teamengine]
e2417f> 04-May-2023 16:23:13.531 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context] failed to set property [processTlds] to [false]
e2417f> 04-May-2023 16:23:13.531 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context] failed to set property [aliases] to [/docs=/root/te_base/resources/docs,/about=/root/te_base/scripts,/reports=/root/te_base/users,/site=/root/te_base/resources/site]
e2417f> 04-May-2023 16:23:13.533 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context/Realm] failed to set property [root] to [/root/te_base/users]
e2417f> 04-May-2023 16:23:13.534 SEVERE [main] org.apache.tomcat.util.digester.Digester.startElement Begin event threw exception
e2417f> java.lang.ClassNotFoundException: org.apache.catalina.loader.VirtualWebappLoader
e2417f> at java.base/java.net.URLClassLoader.findClass(Unknown Source)
e2417f> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
e2417f> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
e2417f> at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:102)
e2417f> at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1264)
e2417f> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
e2417f> at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
e2417f> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
e2417f> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
e2417f> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
e2417f> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
e2417f> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
e2417f> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
e2417f> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
e2417f> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
e2417f> at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1522)
e2417f> at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:736)
e2417f> at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:680)
e2417f> at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:950)
e2417f> at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:315)
e2417f> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
e2417f> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
e2417f> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:137)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
e2417f> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
e2417f> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
e2417f> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:713)
e2417f> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1136)
e2417f> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1971)
e2417f> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
e2417f> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
e2417f> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
e2417f> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
e2417f> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1046)
e2417f> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:428)
e2417f> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1656)
e2417f> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
e2417f> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
e2417f> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
e2417f> at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
e2417f> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:898)
e2417f> at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
e2417f> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
e2417f> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
e2417f> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
e2417f> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
e2417f> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871)
e2417f> at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:913)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
e2417f> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
e2417f> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
e2417f> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
e2417f> at java.base/java.lang.reflect.Method.invoke(Unknown Source)
e2417f> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
e2417f> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
e2417f> 04-May-2023 16:23:13.536 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for [/teamengine]
e2417f> org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/teamengine/META-INF/context.xml; lineNumber: 18; columnNumber: 63; Error at line [18] column [63]: [org.apache.catalina.loader.VirtualWebappLoader]
e2417f> at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:1953)
e2417f> at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:1985)
e2417f> at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1267)
e2417f> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
e2417f> at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
e2417f> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
e2417f> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
e2417f> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
e2417f> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
e2417f> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
e2417f> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
e2417f> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
e2417f> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
e2417f> at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1522)
e2417f> at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:736)
e2417f> at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:680)
e2417f> at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:950)
e2417f> at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:315)
e2417f> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
e2417f> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
e2417f> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:137)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
e2417f> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
e2417f> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
e2417f> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:713)
e2417f> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1136)
e2417f> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1971)
e2417f> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
e2417f> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
e2417f> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
e2417f> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
e2417f> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1046)
e2417f> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:428)
e2417f> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1656)
e2417f> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
e2417f> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
e2417f> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
e2417f> at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
e2417f> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:898)
e2417f> at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
e2417f> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
e2417f> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
e2417f> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
e2417f> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
e2417f> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871)
e2417f> at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:913)
e2417f> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
e2417f> at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
e2417f> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
e2417f> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
e2417f> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
e2417f> at java.base/java.lang.reflect.Method.invoke(Unknown Source)
e2417f> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
e2417f> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
e2417f> Caused by: java.lang.ClassNotFoundException: org.apache.catalina.loader.VirtualWebappLoader
e2417f> at java.base/java.net.URLClassLoader.findClass(Unknown Source)
e2417f> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
e2417f> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
e2417f> at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:102)
e2417f> at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1264)
e2417f> ... 57 more
e2417f> 04-May-2023 16:23:13.537 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line [18] column [63]
e2417f> 04-May-2023 16:23:13.718 SEVERE [main] org.apache.catalina.startup.ContextConfig.configureStart Marking this application unavailable due to previous error(s)
e2417f> May 04, 2023 4:23:13 PM java.util.ArrayList forEach
e2417f> WARNING: Name = EPSG Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "8" for "maxActive" property, which is being ignored.
e2417f> 04-May-2023 16:23:13.766 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more components marked the context as not correctly configured
e2417f> 04-May-2023 16:23:13.773 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/teamengine] startup failed due to previous errors
e2417f> 04-May-2023 16:23:13.778 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/teamengine] has finished in [267] ms
e2417f> 04-May-2023 16:23:13.780 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
e2417f> 04-May-2023 16:23:13.792 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [311] milliseconds
Error was resolved by updating the configuration of context.xml: https://github.com/opengeospatial/teamengine/commit/7e52232e3f934cd8d528138c0479f8c27f88e0ff
However, new errors occur now.
Documentation about migration from Tomcat 7 to 10:
Updated Servlet API to v6: https://github.com/opengeospatial/teamengine/commit/847c4bb3e0f07fc6f6f0aaf3995360e2c1405735
Open TODOs:
Executed script to detect dependency commons-fileupload:commons-fileupload in TEAM Engine and all test suites. Only occurrence is in TEAM Engine:
Results:
--------
teamengine/ contains dependency commons-fileupload:commons-fileupload
Thus, no test suite must be updated in this regard.
@dstenger Fileupload problem might not occur with Tomcat 9. If that is the case, we will update to Tomcat 9 in a first step.
Decision during CITE SC meeting: Continue to work on migration to Tomcat 10.
Also, UserFilesRealmTest and VerifyPBKDF2Realm unit tests fail.
The failures of UserFilesRealmTest and VerifyPBKDF2Realm are related to the changes in PBKDF2Realm and UserFilesRealm. Those shall be reviewed separately as soon as the migration to Tomcat 10 is finished.
Apache Commons is about to release an updated version of fileupload dependency: https://github.com/apache/commons-fileupload#where-can-i-get-the-latest-release
I built the current SNAPSHOT of commons-fileupload2-jakarta, included it into TEAM Engine project and compilation with Java 17 was successful afterwards. Next step: Execute functional test with Tomcat 10.1.
Updated web.xml to use 6.0 schema and removed not supported org.apache.commons.fileupload.servlet.FileCleanerCleanup listener: https://github.com/opengeospatial/teamengine/commit/0fd1a8d7ee1366b63856e18476be47490b778ee5
Introduced commons-fileupload2-jakarta SNAPSHOT dependency: https://github.com/opengeospatial/teamengine/commit/826d6324ba7758ef1f3a94b5e444fe410547e4a8 This must be replaced with a release as soon as the release exists.
Tried to start TEAM Engine with Tomcat 10.1. Following error occurs:
...
c3c728> 12-Jul-2023 10:01:58.116 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context/Realm] failed to set property [root] to [/root/te_base/users]
c3c728> Jul 12, 2023 10:02:01 AM org.apache.catalina.core.StandardContext loadOnStartup
c3c728> SEVERE: Servlet [TestSuiteController] in web application [/teamengine] threw load() exception
c3c728> java.lang.ClassNotFoundException: javax.servlet.Filter
c3c728> at java.base/java.net.URLClassLoader.findClass(Unknown Source)
c3c728> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
c3c728> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
c3c728> at java.base/java.lang.ClassLoader.defineClass1(Native Method)
c3c728> at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
c3c728> at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
c3c728> at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
c3c728> at java.base/java.net.URLClassLoader$1.run(Unknown Source)
...
Solution: jersey/ JAX-RS dependencies must be updated to versions supporting Servlet API 6.0.
SNAPSHOT version of commons-fileupload2-jakarta was replaced by version 2.0.0-M1 which was released 18 days ago: https://github.com/opengeospatial/teamengine/commit/5347afb4d5955cca1e35f7fb230c5338c85d3c42
Jersey dependency must be upgraded from version 1.x to 3.x.
As there is a high complexity of the update when migrating directly from Tomcat 7 to Tomcat 10.1 (Jakarta EE) and Servlet Spec 6 at the same time, it was decided to do the update step by step:
Workflow:
@dstenger I agree with the proposal to target Tomcat 9 first.
Migration to Tomcat 9
Relevant migration guides:
Created test branch in ets-wms13 to verify updates against this test suite: java17Tomcat9TeamEngine6 Configured Java 17 and Tomcat 9 in Dockerfile: https://github.com/opengeospatial/ets-wms13/commit/ddcef87005741484b69292fb952992f765229540 A CTL based test suite was chosen here because TestNG based test suites might need further updates (E.g. update of Jersey dependency to version 2).
Cherry picked commit from branch 6.0-Tomcat10:
stenger@elsbeere:~/git/teamengine$ git cherry-pick -e 7e52232e3f934cd8d528138c0479f8c27f88e0ff
[6.0 5585c33c] Update context.xml to be usable with newer Tomcat versions (#556)
Date: Thu May 4 19:08:55 2023 +0200
1 file changed, 5 insertions(+), 2 deletions(-)
New commit: https://github.com/opengeospatial/teamengine/commit/5585c33cb286af6ea5240064b5b5551fe02e8532
When starting TEAM Engine with the created test environment of ets-wms13 (mvn clean install docker:run -Pdocker), an error occurs during start up of Tomcat 9:
...
b19291> 25-Aug-2023 11:35:00.284 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context] failed to set property [processTlds] to [false]
b19291> 25-Aug-2023 11:35:00.284 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context] failed to set property [aliases] to [/docs=/root/te_base/resources/docs,/about=/root/te_base/scripts,/reports=/root/te_base/users,/site=/root/te_base/resources/site]
b19291> 25-Aug-2023 11:35:00.286 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context/Realm] failed to set property [root] to [/root/te_base/users]
b19291> Aug 25, 2023 11:35:01 AM java.util.ArrayList forEach
b19291> WARNING: Name = EPSG Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "8" for "maxActive" property, which is being ignored.
b19291> Aug 25, 2023 11:35:02 AM com.sun.jersey.core.spi.component.ProviderFactory __getComponentProvider
b19291> SEVERE: The provider class, class com.occamlab.te.spi.jaxrs.ApplicationComponents, could not be instantiated. Processing will continue but the class will not be utilized
b19291> java.lang.IllegalArgumentException
b19291> at jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
b19291> at jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
b19291> at jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
b19291> at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
b19291> at com.sun.jersey.core.spi.scanning.JarFileScanner.scan(JarFileScanner.java:97)
b19291> at com.sun.jersey.core.spi.scanning.uri.JarZipSchemeScanner$1.f(JarZipSchemeScanner.java:78)
b19291> at com.sun.jersey.core.util.Closing.f(Closing.java:71)
b19291> at com.sun.jersey.core.spi.scanning.uri.JarZipSchemeScanner.scan(JarZipSchemeScanner.java:75)
b19291> at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:226)
b19291> at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:142)
b19291> at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:80)
b19291> at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)
b19291> at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78)
b19291> at com.occamlab.te.spi.jaxrs.ApplicationComponents.<init>(ApplicationComponents.java:28)
b19291> at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
b19291> at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
b19291> at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
b19291> at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
b19291> at java.base/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)
b19291> at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)
b19291> at java.base/java.lang.Class.newInstance(Unknown Source)
b19291> at com.sun.jersey.core.spi.component.ComponentConstructor._getInstance(ComponentConstructor.java:193)
b19291> at com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:180)
b19291> at com.sun.jersey.core.spi.component.ProviderFactory.__getComponentProvider(ProviderFactory.java:166)
b19291> at com.sun.jersey.core.spi.component.ProviderFactory._getComponentProvider(ProviderFactory.java:159)
b19291> at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:153)
b19291> at com.sun.jersey.server.impl.application.DeferredResourceConfig$ApplicationHolder.<init>(DeferredResourceConfig.java:86)
b19291> at com.sun.jersey.server.impl.application.DeferredResourceConfig$ApplicationHolder.<init>(DeferredResourceConfig.java:79)
b19291> at com.sun.jersey.server.impl.application.DeferredResourceConfig.getApplication(DeferredResourceConfig.java:76)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1164)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
b19291> at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
b19291> at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509)
b19291> at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339)
b19291> at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
b19291> at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
b19291> at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
b19291> at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
b19291> at javax.servlet.GenericServlet.init(GenericServlet.java:143)
b19291> at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1106)
b19291> at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1063)
b19291> at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:960)
b19291> at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4677)
b19291> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4984)
b19291> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
b19291> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
b19291> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
b19291> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:662)
b19291> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1184)
b19291> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1932)
b19291> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
b19291> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
b19291> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
b19291> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
b19291> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1094)
b19291> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476)
b19291> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1617)
b19291> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318)
b19291> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
b19291> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
b19291> at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
b19291> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
b19291> at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:795)
b19291> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
b19291> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328)
b19291> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318)
b19291> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
b19291> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
b19291> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
b19291> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
b19291> at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:249)
b19291> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
b19291> at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428)
b19291> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
b19291> at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:922)
b19291> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
b19291> at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
b19291> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
b19291> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
b19291> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
b19291> at java.base/java.lang.reflect.Method.invoke(Unknown Source)
b19291> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
b19291> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
...
b19291> Aug 25, 2023 11:35:02 AM org.apache.catalina.core.StandardContext loadOnStartup
b19291> SEVERE: Servlet [TestSuiteController] in web application [/teamengine] threw load() exception
b19291> com.sun.jersey.api.container.ContainerException: The Application class com.occamlab.te.spi.jaxrs.ApplicationComponents could not be instantiated
b19291> at com.sun.jersey.server.impl.application.DeferredResourceConfig$ApplicationHolder.<init>(DeferredResourceConfig.java:88)
b19291> at com.sun.jersey.server.impl.application.DeferredResourceConfig$ApplicationHolder.<init>(DeferredResourceConfig.java:79)
b19291> at com.sun.jersey.server.impl.application.DeferredResourceConfig.getApplication(DeferredResourceConfig.java:76)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1164)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
b19291> at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
...
This does not affect the functionality of a test run. However, when running a test with WMS 1.3, the HTML report is not displayed:
895dc6> Aug 28, 2023 7:20:14 AM org.apache.catalina.core.ApplicationDispatcher invoke
895dc6> SEVERE: Servlet.service() for servlet [default] threw exception
895dc6> java.io.FileNotFoundException: The requested resource [/teamengine/reports/ogctest/s0001/result/index.html] is not available
895dc6> at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:868)
895dc6> at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:519)
895dc6> at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
895dc6> at org.apache.catalina.servlets.DefaultServlet.service(DefaultServlet.java:499)
895dc6> at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
895dc6> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
895dc6> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
895dc6> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661)
895dc6> at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:537)
895dc6> at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:480)
895dc6> at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
895dc6> at org.apache.jsp.viewSessionLog_jsp._jspService(viewSessionLog_jsp.java:451)
895dc6> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
895dc6> at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
895dc6> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
895dc6> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
895dc6> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
895dc6> at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
895dc6> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
895dc6> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
895dc6> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
895dc6> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
895dc6> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
895dc6> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
895dc6> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
895dc6> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:596)
895dc6> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
895dc6> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
895dc6> at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
895dc6> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
895dc6> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
895dc6> at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
895dc6> at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
895dc6> at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
895dc6> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1790)
895dc6> at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
895dc6> at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
895dc6> at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
895dc6> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
895dc6> at java.base/java.lang.Thread.run(Unknown Source)
Further, an update of JAX-RS (Jersey is used as implementation) from version 1 to 2.1 might be necessary as Jersey does not support JDK 11 (and probably higher) anymore: https://github.com/eclipse-ee4j/jersey/issues/5005#issuecomment-1068019530
Updated Tomcat dependency and related code: https://github.com/opengeospatial/teamengine/commit/7c499ad0fab32439a50c9e346a9d12f135aa159b However, the above documented stack traces both still occur.
context.xml had to be updated as some functionalities are not supported anymore (aliases were replaced by PreResources): https://github.com/opengeospatial/teamengine/commit/730ed41140614062a998e8c043343b5635bc5c2e Now, reports can be retrieved again. However, stack trace reported here still occurs.
Decision during CITE meeting 2023-08-28:
During start up three warnings occur:
...
f5e580> 28-Aug-2023 09:03:41.444 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context] failed to set property [processTlds] to [false]
f5e580> 28-Aug-2023 09:03:41.446 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context/Realm] failed to set property [root] to [/usr/local/tomcat/webapps/teamengine/te_base/users]
f5e580> Aug 28, 2023 9:03:42 AM java.util.ArrayList forEach
f5e580> WARNING: Name = EPSG Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "8" for "maxActive" property, which is being ignored.
f5e580> Aug 28, 2023 9:03:45 AM com.sun.jersey.core.spi.component.ProviderFactory __getComponentProvider
...
All three warning were resolved:
A first local test with JAX-RS 2.1/Jersey 2.40 was successful. All smoke tests of the Web Browser Interface returned the expected results.
Migration to JAX-RS 2.1 and Jersey 2.40 was completed: https://github.com/opengeospatial/teamengine/commit/5b61c03a95a284b53fb18ed59aeafd0c2c3b78be
Summary of current status
Use tomcat-jakartaee-migration tool to make TEAM Engine runnable with Tomcat 10.1.
First test with the tool:
stenger@elsbeere:~/git/tomcat-jakartaee-migration$ ./mvnw verify
stenger@elsbeere:~/git/tomcat-jakartaee-migration/target$ java -jar jakartaee-migration-1.0.8-SNAPSHOT-shaded.jar ~/git/teamengine/teamengine-web/target/teamengine.war ~/git/ets-wms13/src/docker/teamengine.war
Performing migration from source [/home/stenger/git/teamengine/teamengine-web/target/teamengine.war] to destination [/home/stenger/git/ets-wms13/src/docker/teamengine.war] with Jakarta EE specification profile [TOMCAT]
Migration starting for archive [teamengine.war] using streaming
Migration starting for archive [WEB-INF/lib/javax.activation-api-1.2.0.jar] using streaming
Migration finished for archive [WEB-INF/lib/javax.activation-api-1.2.0.jar]
Migration starting for archive [WEB-INF/lib/commons-io-2.7.jar] using streaming
Migration finished for archive [WEB-INF/lib/commons-io-2.7.jar]
Migration skipped for archive [WEB-INF/lib/slf4j-api-1.7.20.jar] because it is excluded (the archive was copied unchanged)
Migration starting for archive [WEB-INF/lib/hk2-locator-2.6.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/hk2-locator-2.6.1.jar]
Migration starting for archive [WEB-INF/lib/jstl-api-1.2.jar] using streaming
Migration finished for archive [WEB-INF/lib/jstl-api-1.2.jar]
Migration starting for archive [WEB-INF/lib/hk2-utils-2.6.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/hk2-utils-2.6.1.jar]
Migration starting for archive [WEB-INF/lib/testng-6.9.10.jar] using streaming
Migration finished for archive [WEB-INF/lib/testng-6.9.10.jar]
Migration starting for archive [WEB-INF/lib/jakarta.ws.rs-api-2.1.6.jar] using streaming
Migration finished for archive [WEB-INF/lib/jakarta.ws.rs-api-2.1.6.jar]
Migration starting for archive [WEB-INF/lib/activation-1.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/activation-1.1.jar]
Migration starting for archive [WEB-INF/lib/saxon9-9.0.0.8.jar] using streaming
Migration finished for archive [WEB-INF/lib/saxon9-9.0.0.8.jar]
Migration starting for archive [WEB-INF/lib/jakarta.validation-api-2.0.2.jar] using streaming
Migration finished for archive [WEB-INF/lib/jakarta.validation-api-2.0.2.jar]
Migration starting for archive [WEB-INF/lib/failureaccess-1.0.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/failureaccess-1.0.1.jar]
Migration starting for archive [WEB-INF/lib/jena-iri-3.1.0.jar] using streaming
Migration finished for archive [WEB-INF/lib/jena-iri-3.1.0.jar]
Migration starting for archive [WEB-INF/lib/mail-1.4.7.jar] using streaming
Migration finished for archive [WEB-INF/lib/mail-1.4.7.jar]
Migration starting for archive [WEB-INF/lib/jakarta.inject-2.6.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/jakarta.inject-2.6.1.jar]
Migration starting for archive [WEB-INF/lib/jena-base-3.1.0.jar] using streaming
Migration finished for archive [WEB-INF/lib/jena-base-3.1.0.jar]
Migration starting for archive [WEB-INF/lib/commons-fileupload-1.5.jar] using streaming
Migration finished for archive [WEB-INF/lib/commons-fileupload-1.5.jar]
Migration starting for archive [WEB-INF/lib/teamengine-spi-6.0-SNAPSHOT.jar] using streaming
Migration finished for archive [WEB-INF/lib/teamengine-spi-6.0-SNAPSHOT.jar]
Migration starting for archive [WEB-INF/lib/javassist-3.29.2-GA.jar] using streaming
Migration finished for archive [WEB-INF/lib/javassist-3.29.2-GA.jar]
Migration starting for archive [WEB-INF/lib/jing-20091111.jar] using streaming
Migration finished for archive [WEB-INF/lib/jing-20091111.jar]
Migration starting for archive [WEB-INF/lib/guava-29.0-jre.jar] using streaming
Migration finished for archive [WEB-INF/lib/guava-29.0-jre.jar]
Migration starting for archive [WEB-INF/lib/aopalliance-repackaged-2.6.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/aopalliance-repackaged-2.6.1.jar]
Migration starting for archive [WEB-INF/lib/jcommander-1.48.jar] using streaming
Migration finished for archive [WEB-INF/lib/jcommander-1.48.jar]
Migration starting for archive [WEB-INF/lib/json-simple-1.1.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/json-simple-1.1.1.jar]
Migration starting for archive [WEB-INF/lib/teamengine-core-6.0-SNAPSHOT.jar] using streaming
Migration finished for archive [WEB-INF/lib/teamengine-core-6.0-SNAPSHOT.jar]
Migration starting for archive [WEB-INF/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar] using streaming
Migration finished for archive [WEB-INF/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar]
Migration skipped for archive [WEB-INF/lib/commons-codec-1.11.jar] because it is excluded (the archive was copied unchanged)
Migration starting for archive [WEB-INF/lib/hk2-api-2.6.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/hk2-api-2.6.1.jar]
Migration starting for archive [WEB-INF/lib/checker-qual-2.11.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/checker-qual-2.11.1.jar]
Migration starting for archive [WEB-INF/lib/jsr305-3.0.2.jar] using streaming
Migration finished for archive [WEB-INF/lib/jsr305-3.0.2.jar]
Migration starting for archive [WEB-INF/lib/javax.servlet.jsp.jstl-1.2.3.jar] using streaming
Migration finished for archive [WEB-INF/lib/javax.servlet.jsp.jstl-1.2.3.jar]
Migration starting for archive [WEB-INF/lib/collection-0.6.jar] using streaming
Migration finished for archive [WEB-INF/lib/collection-0.6.jar]
Migration starting for archive [WEB-INF/lib/jakarta.annotation-api-1.3.5.jar] using streaming
Migration finished for archive [WEB-INF/lib/jakarta.annotation-api-1.3.5.jar]
Migration starting for archive [WEB-INF/lib/jena-shaded-guava-3.1.0.jar] using streaming
Migration finished for archive [WEB-INF/lib/jena-shaded-guava-3.1.0.jar]
Migration starting for archive [WEB-INF/lib/jena-core-3.1.0.jar] using streaming
Migration finished for archive [WEB-INF/lib/jena-core-3.1.0.jar]
Migration starting for archive [WEB-INF/lib/osgi-resource-locator-1.0.3.jar] using streaming
Migration finished for archive [WEB-INF/lib/osgi-resource-locator-1.0.3.jar]
Migration starting for archive [WEB-INF/lib/mimepull-1.9.15.jar] using streaming
Migration finished for archive [WEB-INF/lib/mimepull-1.9.15.jar]
Migration starting for archive [WEB-INF/lib/commons-cli-1.3.jar] using streaming
Migration finished for archive [WEB-INF/lib/commons-cli-1.3.jar]
Migration starting for archive [WEB-INF/lib/tomcat-servlet-api-9.0.78.jar] using streaming
Migration finished for archive [WEB-INF/lib/tomcat-servlet-api-9.0.78.jar]
Migration starting for archive [WEB-INF/lib/teamengine-spi-ctl-6.0-SNAPSHOT.jar] using streaming
Migration finished for archive [WEB-INF/lib/teamengine-spi-ctl-6.0-SNAPSHOT.jar]
Migration starting for archive [WEB-INF/lib/j2objc-annotations-1.3.jar] using streaming
Migration finished for archive [WEB-INF/lib/j2objc-annotations-1.3.jar]
Migration starting for archive [WEB-INF/lib/jaxb-api-2.3.1.jar] using streaming
Migration finished for archive [WEB-INF/lib/jaxb-api-2.3.1.jar]
Migration starting for archive [WEB-INF/lib/isorelax-20030108.jar] using streaming
Migration finished for archive [WEB-INF/lib/isorelax-20030108.jar]
Migration starting for archive [WEB-INF/lib/joda-time-2.9.4.jar] using streaming
Migration finished for archive [WEB-INF/lib/joda-time-2.9.4.jar]
Migration starting for archive [WEB-INF/lib/error_prone_annotations-2.3.4.jar] using streaming
Migration finished for archive [WEB-INF/lib/error_prone_annotations-2.3.4.jar]
Migration finished for archive [teamengine.war]
Migration completed successfully in [2,821] milliseconds
Test migrated webapp with ets-wms13:
stenger@elsbeere:~/git/ets-wms13$ git diff
diff --git a/src/docker/Dockerfile b/src/docker/Dockerfile
index 78ddfb3..e5c24bd 100644
--- a/src/docker/Dockerfile
+++ b/src/docker/Dockerfile
@@ -1,4 +1,4 @@
-FROM tomcat:9-jre17
+FROM tomcat:10.1-jre17
MAINTAINER Dirk Stenger <stenger@lat-lon.de>
MAINTAINER Torsten Friebe <friebe@lat-lon.de>
@@ -6,8 +6,8 @@ MAINTAINER Torsten Friebe <friebe@lat-lon.de>
RUN apt update && apt install -y unzip
# add TEAM engine webapp
-ADD maven/dependency/teamengine-web-*.war /root/
-RUN cd /root/ && unzip -q teamengine-web-*.war -d /usr/local/tomcat/webapps/teamengine
+ADD teamengine.war /root/
+RUN cd /root/ && unzip -q teamengine.war -d /usr/local/tomcat/webapps/teamengine
# add common libs
ADD maven/dependency/teamengine-web-*-common-libs.zip /root/
mvn clean install docker:run -Pdocker
...
229f66> 05-Sep-2023 18:27:46.827 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.11]
229f66> 05-Sep-2023 18:27:46.833 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/teamengine]
229f66> Sep 05, 2023 6:27:48 PM org.apache.catalina.core.StandardContext filterStart
229f66> SEVERE: Exception starting filter [AuthenticationFilter]
229f66> java.lang.NoClassDefFoundError: javax/servlet/Filter
229f66> at java.base/java.lang.ClassLoader.defineClass1(Native Method)
229f66> at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
229f66> at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
229f66> at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
229f66> at java.base/java.net.URLClassLoader$1.run(Unknown Source)
229f66> at java.base/java.net.URLClassLoader$1.run(Unknown Source)
229f66> at java.base/java.security.AccessController.doPrivileged(Unknown Source)
229f66> at java.base/java.net.URLClassLoader.findClass(Unknown Source)
229f66> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
229f66> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
229f66> at java.base/java.lang.Class.forName0(Native Method)
229f66> at java.base/java.lang.Class.forName(Unknown Source)
229f66> at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1421)
229f66> at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
229f66> at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:491)
229f66> at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:473)
229f66> at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
229f66> at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:243)
229f66> at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
229f66> at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4309)
229f66> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4922)
229f66> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
229f66> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
229f66> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
229f66> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:713)
229f66> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1136)
229f66> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1971)
229f66> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
229f66> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
229f66> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
229f66> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
229f66> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1046)
229f66> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:428)
229f66> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1656)
229f66> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
229f66> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
229f66> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
229f66> at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
229f66> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
229f66> at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846)
229f66> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
229f66> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328)
229f66> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318)
229f66> at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
229f66> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
229f66> at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
229f66> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
229f66> at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241)
229f66> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
229f66> at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428)
229f66> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
229f66> at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:918)
229f66> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
229f66> at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
229f66> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
229f66> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
229f66> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
229f66> at java.base/java.lang.reflect.Method.invoke(Unknown Source)
229f66> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
229f66> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
229f66> Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
229f66> at java.base/java.net.URLClassLoader.findClass(Unknown Source)
229f66> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
229f66> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
229f66> ... 60 more
229f66>
229f66> 05-Sep-2023 18:27:48.097 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file
229f66> 05-Sep-2023 18:27:48.097 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/teamengine] startup failed due to previous errors
229f66> 05-Sep-2023 18:27:48.106 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/teamengine] has finished in [1,272] ms
229f66> 05-Sep-2023 18:27:48.108 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
229f66> 05-Sep-2023 18:27:48.117 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1319] milliseconds
This error might be caused by the fact that the teamengine-web-*-common-libs.zip
artifact was not migrated by the tool.
Migration to Tomcat 10.1
Relevant migration guides:
Created test branch in ets-wms13 which uses Tomcat 10.1 in Dockerfile: java17Tomcat101TeamEngine6
Previously used tool is also mentioned by migration guide for version 10 and can be downloaded as binary from Tomcat website directly: https://tomcat.apache.org/download-migration.cgi
The tool can also be executed against the common-libs of TEAM Engine. Thus, it was executed twice:
./migrate.sh ~/git/teamengine/teamengine-web/target/teamengine.war ~/git/ets-wms13/src/docker/teamengine.war
./migrate.sh ~/git/teamengine/teamengine-web/target/teamengine-common-libs.zip ~/git/ets-wms13/src/docker/teamengine-common-libs.zip
Afterwards, those files were temporarily included in the Dockerfile of ets-wms13:
git diff src/docker/Dockerfile
...
-ADD maven/dependency/teamengine-web-*.war /root/
-RUN cd /root/ && unzip -q teamengine-web-*.war -d /usr/local/tomcat/webapps/teamengine
+ADD teamengine.war /root/
+RUN cd /root/ && unzip -q teamengine.war -d /usr/local/tomcat/webapps/teamengine
...
-ADD maven/dependency/teamengine-web-*-common-libs.zip /root/
-RUN cd /root/ && unzip -q teamengine-web-*-common-libs.zip -d /usr/local/tomcat/lib
+ADD teamengine-common-libs.zip /root/
+RUN cd /root/ && unzip -q teamengine-common-libs.zip -d /usr/local/tomcat/lib
...
Now, there is no error occurring during start up of Tomcat 10.1 (using ets-wms13 Dockerfile).
However, when trying to login via Web Browser Interface, an exception is displayed:
java.lang.NoSuchMethodError: 'java.lang.String org.apache.catalina.realm.GenericPrincipal.getPassword()'
com.occamlab.te.realm.PBKDF2Realm.authenticate(PBKDF2Realm.java:88)
org.apache.catalina.authenticator.FormAuthenticator.doAuthenticate(FormAuthenticator.java:269)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Unknown Source)
Thus, the implementations using tomcat interfaces/abstract classes must be updated in TEAM Engine code (here, class PBKDF2Realm).
Set dependency tomcat-catalina to version 10.1.11 and updated all implementations of abstract classes and interfaces of tomcat-catalina: https://github.com/opengeospatial/teamengine/commit/a4b0f731a54c85bbab17dc4775684d961f90f91a
Again, workaround described here was applied: https://github.com/opengeospatial/teamengine/issues/556#issuecomment-1536657832
Afterwards, Tomcat migration tool was applied and TEAM Engine was started with Tomcat 10.1 again as described here.
TEAM Engine successfully started, it was possible to login and to execute test runs.
Thus, the migration is almost done. Only the changes currently done by the migration tool have to be applied to the TEAM Engine code.
Only solution to use the jakarta namespace was to migrate to Servlet API version 6.0.
Commit: https://github.com/opengeospatial/teamengine/commit/6c9c85bc9ad53810d96f37edb3d68fb61c706004
Now, this stack trace occurs during startup of Tomcat:
328629> 02-Oct-2023 14:55:56.526 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/teamengine]
328629> Oct 02, 2023 2:55:58 PM org.apache.catalina.core.StandardContext loadOnStartup
328629> SEVERE: Servlet [TestSuiteController] in web application [/teamengine] threw load() exception
328629> java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
328629> at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1437)
328629> at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
328629> at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:491)
328629> at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:473)
328629> at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
328629> at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:865)
328629> at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:805)
328629> at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4601)
328629> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4894)
328629> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
328629> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
328629> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
328629> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:713)
328629> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1136)
328629> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1971)
328629> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
328629> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
328629> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
328629> at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
328629> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1046)
328629> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:428)
328629> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1656)
328629> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
328629> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
328629> at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
328629> at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)
328629> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
328629> at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846)
328629> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
328629> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
328629> at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
328629> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
328629> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
328629> at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
328629> at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
328629> at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241)
328629> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
328629> at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
328629> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
328629> at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:918)
328629> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
328629> at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
328629> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
328629> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
328629> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
328629> at java.base/java.lang.reflect.Method.invoke(Method.java:568)
328629> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
328629> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
This does not affect the Web Browser Interface. However, the REST Interface is not working.
To solve this problem, JAX-RS must be updated to version 3.1 to also use the jakarta namespace.
Migration to JAX-RS 3.1/ Jersey 3.1.3 was completed: https://github.com/opengeospatial/teamengine/commit/e989720a9770c5ba00c724a711012feacd3e1e9a
The previously documented stack trace does not occur anymore and a smoke test with the Web Browser Interface was successful.
However, the REST Interface currently does not work. Calling http://localhost:8081/teamengine/rest/suites/ returns HTTP status code 404.
...
b814e0> 04-Oct-2023 09:28:14.752 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.11]
b814e0> 04-Oct-2023 09:28:14.760 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/teamengine]
b814e0> Oct 04, 2023 9:28:18 AM org.glassfish.jersey.message.internal.MessagingBinders$EnabledProvidersBinder bindToBinder
b814e0> WARNING: A class jakarta.activation.DataSource for a default provider MessageBodyWriter<jakarta.activation.DataSource> was not found. The provider is not available.
b814e0> Oct 04, 2023 9:28:18 AM org.glassfish.jersey.server.wadl.WadlFeature configure
b814e0> WARNING: JAX-B API not found . WADL feature is disabled.
b814e0> 04-Oct-2023 09:28:18.756 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/teamengine] has finished in [3,996] ms
...
JAXB must also be upgraded to the jakarta namespace.
Migration to JAXB 4.0 was completed: https://github.com/opengeospatial/teamengine/commit/b697f3ad894d338317d3c6ac4a7cd7226b75fc49
The previously documented warnings do not occur anymore.
However, the REST Interface can still not be used and returns HTTP status code 404.
Increased logging in teamengine-web/src/main/resources/logging.properties:
...
com.occamlab.te.spi.level = ALL
com.occamlab.te.spi.handlers = org.apache.juli.FileHandler
org.glassfish.jersey.level = ALL
org.glassfish.jersey.handlers = org.apache.juli.FileHandler
During start up no hints can be found in log. When requesting http://localhost:8081/teamengine/rest/suites/, the following is logged:
05-Oct-2023 09:38:20.764 FINER [http-nio-8080-exec-7] org.glassfish.jersey.server.ServerRuntime$Responder.mapException Starting mapping of the exception.
jakarta.ws.rs.NotFoundException: HTTP 404 Not Found
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:258)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:240)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:697)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:357)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at com.occamlab.te.realm.RestAuthenticationFilter.doFilter(RestAuthenticationFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
05-Oct-2023 09:38:20.765 FINE [http-nio-8080-exec-7] org.glassfish.jersey.server.ServerRuntime$Responder.mapException WebApplicationException (WAE) with no entity thrown and no ExceptionMappers have been found for this WAE. Response with status 404 is directly generated from the WAE.
jakarta.ws.rs.NotFoundException: HTTP 404 Not Found
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:258)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:240)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:697)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:357)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at com.occamlab.te.realm.RestAuthenticationFilter.doFilter(RestAuthenticationFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
05-Oct-2023 09:38:20.769 FINEST [http-nio-8080-exec-7] org.glassfish.jersey.internal.util.ExtendedLogger.debugLog [DEBUG] Released scope instance Instance{id=b4352fed-4712-4bd6-b50c-ed0ee49059c6, referenceCounter=0, store size=0} on thread http-nio-8080-exec-7
Problem was partly solved: https://github.com/opengeospatial/teamengine/commit/547450018d8405c45ae413e33c12aded34ca336c However, still not all REST resources work as expected.
New issues were created for all remaining tasks:
Good day,
I just wanted to know if there are plan for updating teamengine to use a more recent versión of Tomcat server. I tested the teamengine.war for Tomcat 10 but it throws some exceptions regarding the te_base resources inclusion in the context.xml and for some filters.
Has someone given it a try?
Thank you
Julian