plantuml / plantuml-server

PlantUML Online Server
https://plantuml.com/
GNU General Public License v3.0
1.59k stars 463 forks source link

tomcat 10 not supported? #328

Open OneOfTheJohns opened 5 months ago

OneOfTheJohns commented 5 months ago

java version: openjdk 11.0.21 2023-10-17

tomcat version: Server version: Apache Tomcat/10.1.18

reproducing error code:

git clone git@github.com:plantuml/plantuml-server.git

cd plantuml-server
mvn package
cp target/plantuml.war /opt/tomcat/webapps
chown tomcat:tomcat /opt/tomcat/webapps/plantuml.war
... catalina.sh run

And i get such error:

29-Jan-2024 13:50:55.513 SEVERE [main] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [jsp] in web application [/plantuml] threw load() exception
    java.lang.ClassNotFoundException: org.eclipse.jetty.jsp.JettyJspServlet
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
        at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:491)
        at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:473)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:865)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:805)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4617)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4910)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1961)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:428)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1661)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
        at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
        at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)

I dont have any experience nor with Jetty nor with maven, but.... Im not sure why i get org.eclipse.jetty.jsp.JettyJspServlet , but from the Jetty in this java class name, i would think that the generated .war file is expected to be used with Jetty and not with tomcat? but from the https://github.com/plantuml/plantuml-server#recommendations and https://plantuml.com/en/server#Installation%20of%20the%20PlantUML%20Server , i got an feeling that tomcat 10 is supported? So, i would think im probably doing something wrong, but as there is not much of documentation about installation and configuration of plantuml server, here am with such issue.

OneOfTheJohns commented 5 months ago

For some reason missed this ticket - https://github.com/plantuml/plantuml-server/issues/237#issuecomment-1205681686 , apparently someone already had same issue, and using v1.2022.6 release .war file helped me. "latest" (v1.2023.13 release seems not to be working.