Announcement

Collapse
No announcement yet.

Einfacher HelloWorld-Webservice mit Jakarta, Java14 und TomEE unter Eclipse

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Das WAR ist ein ZIP. Das kannst du als ZIP öffnen und reinschauen
    Christian

    Comment


    • #17
      Hallo Christian,

      ich hab mir das Deployment jetzt nochmal genauer angeschaut. Eclipse verwendet wohl nicht die location die man als Installationsverzeichnis des TomEE angibt, sondern macht das dann wohl irgendwo temporär.

      Ich habe das Projekt nun als WAR exportiert und mal reingeschaut. Statische HTML-Seite ist da und auch die beiden class-Dateien. Dann habe ich den TomEE per CommandLine gestartet und über den integrieren AppManager das WAR file deployed. Jetzt konnte ich in dem Log-Verzeichnis auch was finden. Folgendes habe ich in der Datei cataline.out gefunden was auch vermutlich das Problem ist:

      07-Mar-2021 14:47:47.668 SEVERE [main] jdk.internal.reflect.NativeMethodAccessorImpl.invo ke Fehler beim deployen des Web-Applikationsarchivs [/srv/apache-tomee-9.0.0-M2-plus/apache-tomee-plus-9.0.0-M2/webapps/Test2.war]
      java.lang.IllegalStateException: Error starting child
      at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:720)
      at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:690)
      at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:705)
      at org.apache.catalina.startup.HostConfig.deployWAR(H ostConfig.java:978)
      at org.apache.catalina.startup.HostConfig$DeployWar.r un(HostConfig.java:1848)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.jav a:264)
      at org.apache.tomcat.util.threads.InlineExecutorServi ce.execute(InlineExecutorService.java:75)
      at java.base/java.util.concurrent.AbstractExecutorService.submi t(AbstractExecutorService.java:118)
      at org.apache.catalina.startup.HostConfig.deployWARs( HostConfig.java:773)
      at org.apache.catalina.startup.HostConfig.deployApps( HostConfig.java:427)
      at org.apache.catalina.startup.HostConfig.start(HostC onfig.java:1576)
      at org.apache.catalina.startup.HostConfig.lifecycleEv ent(HostConfig.java:309)
      at org.apache.catalina.util.LifecycleBase.fireLifecyc leEvent(LifecycleBase.java:123)
      at org.apache.catalina.util.LifecycleBase.setStateInt ernal(LifecycleBase.java:423)
      at org.apache.catalina.util.LifecycleBase.setState(Li fecycleBase.java:366)
      at org.apache.catalina.core.ContainerBase.startIntern al(ContainerBase.java:936)
      at org.apache.catalina.core.StandardHost.startInterna l(StandardHost.java:841)
      at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:183)
      at org.apache.catalina.core.ContainerBase$StartChild. call(ContainerBase.java:1384)
      at org.apache.catalina.core.ContainerBase$StartChild. call(ContainerBase.java:1374)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.jav a:264)
      at org.apache.tomcat.util.threads.InlineExecutorServi ce.execute(InlineExecutorService.java:75)
      at java.base/java.util.concurrent.AbstractExecutorService.submi t(AbstractExecutorService.java:140)
      at org.apache.catalina.core.ContainerBase.startIntern al(ContainerBase.java:909)
      at org.apache.catalina.core.StandardEngine.startInter nal(StandardEngine.java:262)
      at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:183)
      at org.apache.catalina.core.StandardService.startInte rnal(StandardService.java:421)
      at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:183)
      at org.apache.catalina.core.StandardServer.startInter nal(StandardServer.java:930)
      at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:183)
      at org.apache.catalina.startup.Catalina.start(Catalin a.java:738)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo ke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo ke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:564)
      at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:342)
      at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:473)
      Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Test2]]
      at org.apache.catalina.util.LifecycleBase.handleSubCl assException(LifecycleBase.java:440)
      at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:198)
      at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:717)
      ... 37 more
      Caused by: org.apache.tomee.catalina.TomEERuntimeException: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module Test2: Unable to read class definition for controller.HelloWorld
      at org.apache.tomee.catalina.TomcatWebAppBuilder.load Application(TomcatWebAppBuilder.java:2363)
      at org.apache.tomee.catalina.TomcatWebAppBuilder.star tInternal(TomcatWebAppBuilder.java:1198)
      at org.apache.tomee.catalina.TomcatWebAppBuilder.conf igureStart(TomcatWebAppBuilder.java:1131)
      at org.apache.tomee.catalina.GlobalListenerSupport.li fecycleEvent(GlobalListenerSupport.java:134)
      at org.apache.catalina.util.LifecycleBase.fireLifecyc leEvent(LifecycleBase.java:123)
      at org.apache.catalina.core.StandardContext.startInte rnal(StandardContext.java:5044)
      at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:183)
      ... 38 more
      Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module Test2: Unable to read class definition for controller.HelloWorld
      at org.apache.openejb.config.DeploymentLoader.addWebM odule(DeploymentLoader.java:886)
      at org.apache.openejb.config.DeploymentLoader.load(De ploymentLoader.java:233)
      at org.apache.tomee.catalina.TomcatWebAppBuilder.load Application(TomcatWebAppBuilder.java:2361)
      ... 44 more
      Caused by: java.lang.RuntimeException: Unable to read class definition for controller.HelloWorld
      at org.apache.xbean.finder.AnnotationFinder.readClass Def(AnnotationFinder.java:1180)
      at org.apache.xbean.finder.AnnotationFinder.<init>(An notationFinder.java:153)
      at org.apache.xbean.finder.AnnotationFinder.<init>(An notationFinder.java:166)
      at org.apache.openejb.config.FinderFactory$OpenEJBAnn otationFinder.<init>(FinderFactory.java:546)
      at org.apache.openejb.config.FinderFactory.newFinder( FinderFactory.java:267)
      at org.apache.openejb.config.FinderFactory.create(Fin derFactory.java:80)
      at org.apache.openejb.config.FinderFactory.createFind er(FinderFactory.java:69)
      at org.apache.openejb.config.DeploymentLoader.addWebM odule(DeploymentLoader.java:878)
      ... 46 more
      Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 58
      at org.apache.xbean.asm7.ClassReader.<init>(ClassRead er.java:195)
      at org.apache.xbean.asm7.ClassReader.<init>(ClassRead er.java:176)
      at org.apache.xbean.asm7.ClassReader.<init>(ClassRead er.java:162)
      at org.apache.xbean.asm7.ClassReader.<init>(ClassRead er.java:283)
      at org.apache.xbean.finder.AnnotationFinder.readClass Def(AnnotationFinder.java:1176)
      ... 53 more

      Kannst du damit was anfangen??

      Comment


      • #18
        Unsupported class file major version 58

        Die Javaversion mit der die Klasse erstellt wurde, ist eine andere (höhere) als die, die mit dem Server läuft

        https://www.baeldung.com/java-lang-u...edclassversion
        Christian

        Comment


        • #19
          Hm, wundert mich etwas. Mit "catalina.sh version" bekomme ich "JVM Version: 14.0.1+7"
          und unter den Properties für das Projekt habe ich als Runtime Environment den TomCat mit "jdk-14.0.1" konfiguriert.

          Gucke bzw. konfiguriere ich da an den falschen Stellen?? Kann ich die Java-Version mit der ich die Klassen im WAR-File kompiliert habe sonst noch irgenwie herausfinden??

          Comment


          • #20
            In Eclipse steht für das Projekt unter "Java Build Path -> Libraries" auch "JRE System Library [jdk-14.0.1]"

            Comment


            • #21
              Da wo die Klasse ausgeführt wird ist kein Java 14 (58)
              Christian

              Comment


              • #22
                Ok, ich starte den TomEE Server mit dem startup.sh Skript. Dabei bekomme ich folgendes ausgegeben:

                Using JRE_HOME: /lib/jvm/usrdefault-java


                Lasse ich mir die Java-Version mit "/usr/lib/jvm/default-java/bin/java --version" ausgeben bekomme ich folgendes:

                openjdk 14.0.1 2020-04-14
                OpenJDK Runtime Environment (build 14.0.1+7)
                OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

                Damit müsste doch der TomEE inklusive des darauf installierten WAR-File unter Java 14.0.1 laufen, oder??


                Comment


                • #23
                  Vielleicht hat der Server eine Konfigurationseinstellung, dass er in Javaversion xx arbeitet...
                  Üblicherweise haben Compiler, Linker usw. mit Fehlermeldungen in 99% der Fälle recht
                  Christian

                  Comment


                  • #24
                    Alles klar, dann versuche ich da nochmal was zu rauszufinden und werde mich dann nochmal melden!!

                    Comment


                    • #25
                      Wenn du nicht unbedingt die 14er brauchst, kannst du ja Eclipse sagen, er soll das für eine andere Version compilieren. Siehe Link oben
                      Christian

                      Comment


                      • #26
                        Gute Idee, werde das auch mal versuchen. Vielleicht komme ich ja so rum weiter.

                        Comment


                        • #27
                          Ha, jetzt läuft's. Die Java-Version war die richtige Spur.

                          Ein paar Libraries vom TomEE 9 laufen einfach nicht mit Java 14. (https://lenient.dev/java/error/unsup...or-version-58/).

                          Ich hab jetzt alle JDK's runtergeschmissen und nur noch die empfohlene Version 8 installiert (vielleicht hätte ich da mal vorher genauer lesen müssen....)
                          Mit den entsprechenden Anpassungen am Projekt läuft die Sache jetzt auch aus Eclipse heraus.

                          Danke für deine Tipps, die mich in die richtige Richtung gebracht haben. Bewundernswert wie viel Zeit sich manche nehmen um anderen zu helfen.

                          Comment


                          • #28
                            Sehr gut, dass es geht
                            Christian

                            Comment

                            Working...
                            X