Web UI Integration: java.lang.NoClassDefFoundError
Posted: Thu Dec 06, 2012 6:31 pm
Derzeit gibt es in meiner Applikation ein Problem mit JVx und der Integration der Web UI. Das bisherige Projekt wurde entsprechend des Tutorials (http://www.sibvisions.com/de/jvxmdocumentation/94-jvxhelloworld) entwickelt und unterscheidet sich lediglich in der Datenbankkomponente. Das Problem umschreibe ich am besten mit den Rahmendaten.
Die Web UI (v 0.10) sollte gemäß der Anleitung unter http://forum.sibvisions.com/viewtopic.php?f=5&t=99&p=145&hilit=Web+UI+einrichten#p145 umgesetzt werden. Dort ist die Rede von einer Web Applikation und ich interpretierte es als „Dynamisches Web Projekt“, welches ich mit Eclipse erstellt habe. Weiterführend wurden die ersten 3 Punkte umgesetzt, erst ab Punkt 4 stellten sich mir viele Fragen (siehe unten). In das WEB-INF/lib Verzeichnis habe ich ein JAR-Archiv meiner Applikation exportiert. In Punkt 5 habe ich die entsprechenden Anpassungen vorgenommen.
In der webui.html:
und in der web.xml:
Mir ist bewusst, dass man diverse XML’s erstellen kann, um der Applikation beim Start entsprechende Parameter übergeben zu können, dies wurde von mir aber nicht umgesetzt.
Bei der Ausführung der Web Applikation auf einem Tomcat6 entsteht dann folgender Fehler:
Nun meine Fragen:
Anbei noch ein Screenshot meiner Arbeit, die ein gutes Bild meiner aktuellen Situation abgibt:
Die Web UI (v 0.10) sollte gemäß der Anleitung unter http://forum.sibvisions.com/viewtopic.php?f=5&t=99&p=145&hilit=Web+UI+einrichten#p145 umgesetzt werden. Dort ist die Rede von einer Web Applikation und ich interpretierte es als „Dynamisches Web Projekt“, welches ich mit Eclipse erstellt habe. Weiterführend wurden die ersten 3 Punkte umgesetzt, erst ab Punkt 4 stellten sich mir viele Fragen (siehe unten). In das WEB-INF/lib Verzeichnis habe ich ein JAR-Archiv meiner Applikation exportiert. In Punkt 5 habe ich die entsprechenden Anpassungen vorgenommen.
In der webui.html:
- Code: Select all
<!-- -->
<!-- Application properties -->
<!-- -->
<meta name="gwt:property" content="main=JVxFirstApp.bin.apps.firstapp.FirstApplication">
<!-- <meta name="gwt:property" content="config=/com/sibvisions/apps/showcase/application.xml"> -->
und in der web.xml:
- Code: Select all
<servlet>
<servlet-name>WebLauncherServiceImpl</servlet-name>
<servlet-class>com.sibvisions.rad.ui.gwt.server.WebLauncherServiceImpl</servlet-class>
<init-param>
<param-name>main</param-name>
<param-value>JVxFirstApp.bin.apps.firstapp.FirstApplication</param-value>
</init-param>
</servlet>
Mir ist bewusst, dass man diverse XML’s erstellen kann, um der Applikation beim Start entsprechende Parameter übergeben zu können, dies wurde von mir aber nicht umgesetzt.
Bei der Ausführung der Web Applikation auf einem Tomcat6 entsteht dann folgender Fehler:
- Code: Select all
java.lang.NoClassDefFoundError: JVxFirstApp/bin/apps/firstapp/FirstApplication (wrong name: apps/firstapp/FirstApplication)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sibvisions.util.Reflective.construct(Unknown Source)
at com.sibvisions.rad.ui.ApplicationUtil.createApplication(Unknown Source)
at com.sibvisions.rad.ui.web.impl.WebLauncher.<init>(Unknown Source)
at com.sibvisions.rad.ui.gwt.server.WebLauncherServiceImpl.startApplication(Unknown Source)
at com.sibvisions.rad.ui.gwt.server.WebLauncherServiceImpl.dispatchEvent(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:679)
Nun meine Fragen:
- - Ist bei der Erstellung der Web Applikation hinsichtlich des Eclipse-Projektes (Dynamisches Web Projekt) etwas Spezielles zu beachten oder war es gar das falsche Projekt?
- Muss ich beim Kopieren der „bereits installierten Applikation“ etwas Besonderes beachten?
- Muss die "bereits installierte Applikation" besondere Eigenschaften an einer bestimmten stelle haben und kann ich ersatzweise auch ein JAR-Archiv exportieren?
- Werden zusätzliche Parameter per XML bei der Umsetzung in Bezug auf die Web UI benötigt? Oder muss ich etwas anderes bei der web.xml / webui.html beachten?
Anbei noch ein Screenshot meiner Arbeit, die ein gutes Bild meiner aktuellen Situation abgibt: