Servlet wird nicht gefunden - HTTP Error 503

Precosia

Mitglied
Hallo Community,

Ich habe das Problem das GWT den Servlet wohl nicht findet obwohl dieser in web.xml, TaschenrechnerApp.gwt.xml integriert sind, ferner kommt noch ein 503 HTTP Error.

Kann mir vielleicht jemand sagen wo der Fehler ist. SUch schon ne Weile und find ihn nicht.


web.xml
Java:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  
  <!-- Servlets -->
  <servlet>
    <servlet-name>TaschenrechnerAppServiceImpl</servlet-name>
    <servlet-class>com.hs.java.taschenrechnerapp.server.TaschenrechnerAppServiceImpl</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>TaschenrechnerAppServiceImpl</servlet-name>
    <url-pattern>/taschenrechnerapp/taschenrechnerApp</url-pattern>
  </servlet-mapping>
  
  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>TaschenrechnerApp.html</welcome-file>
  </welcome-file-list>

</web-app>

TaschenrechnerApp.gwt.xml
Java:
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='taschenrechnerapp'>
  <!-- Inherit the core Web Toolkit stuff.                        -->
  <inherits name='com.google.gwt.user.User'/>
  <inherits name='com.google.gwt.user.theme.clean.Clean'/>

  <!-- Other module inherits                                      -->
  <servlet path="/taschenrechnerapp" class="com.hs.java.taschenrechnerapp.server.TaschenrechnerAppServiceImpl" />

  <!-- Specify the app entry point class.                         -->
  <entry-point class='com.hs.java.taschenrechnerapp.client.TaschenrechnerView'/>

  <!-- Specify the paths for translatable code                    -->
  <source path='client'/>
  <source path='shared'/>

</module>

Consolenausgabe
Java:
Starting Jetty on port 8888
   [WARN] EXCEPTION 
java.lang.ClassNotFoundException: com.hs.java.taschenrechnerapp.server.TaschenrechnerAppServiceImpl
	at java.lang.ClassLoader.findClass(ClassLoader.java:359)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:352)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
	at org.mortbay.util.Loader.loadClass(Loader.java:91)
	at org.mortbay.util.Loader.loadClass(Loader.java:71)
	at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
	at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
	at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:463)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:222)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:667)
	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:500)
	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1055)
	at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:804)
	at com.google.gwt.dev.DevMode.main(DevMode.java:309)
   [WARN] failed TaschenrechnerAppServiceImpl
javax.servlet.UnavailableException: com.hs.java.taschenrechnerapp.server.TaschenrechnerAppServiceImpl
	at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
	at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
	at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:463)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:222)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:667)
	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:500)
	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1055)
	at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:804)
	at com.google.gwt.dev.DevMode.main(DevMode.java:309)
   [WARN] Failed startup of context com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload@1b2e4a1{/,D:\Projects\workspace_TaschenrechnerApp\TaschenrechnerApp\war}
javax.servlet.UnavailableException: com.hs.java.taschenrechnerapp.server.TaschenrechnerAppServiceImpl
	at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
	at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
	at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:463)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:222)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:667)
	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:500)
	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1055)
	at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:804)
	at com.google.gwt.dev.DevMode.main(DevMode.java:309)
[ERROR] 503 - GET /TaschenrechnerApp.html?gwt.codesvr=127.0.0.1:9997 (127.0.0.1) 1329 bytes
   Request headers
      Host: 127.0.0.1:8888
      User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
      Accept-Encoding: gzip, deflate
      Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
      Connection: keep-alive
   Response headers
      Content-Type: text/html; charset=iso-8859-1
      Content-Length: 1329
 
java.lang.ClassNotFoundException: com.hs.java.taschenrechnerapp.server.TaschenrechnerAppServiceImpl
Die Exception ist ziemlich eindeutig. Sie sagt, dass Jetty gerne die genannte Klasse laden möchte (weil sie so im servlet-mapping in der web.xml angegeben ist). Aber er findet sie nicht. Das kann verschiedene Ursachen haben. Entweder stimmt die Angabe in der web.xml nicht (z.B. Package falsch?). Oder Deine kompilierten Klassen liegen zwar in deiner Entwicklungsumgebung, aber nicht in dem Ordner, aus dem Jetty die Klassel laden möchte. Dann müsstest Du an Deiner Buildumgebung was korrigieren.
 
Hallo,

habe genau das gleiche Problem... bisher keine Lösung weil ich nicht verstanden habe was du nun genau gemacht hast ^^
 
Mittlerweile habe ich herausgefunden woran es bei mir lag. In meinem Fall habe ich in der Web.xml die servlets alle rausgenommen. Dann hat es funktioniert. Natürlich vorrausgesetzt, dass man die nicht braucht.
 
Zuletzt bearbeitet:
Ich bin auch ein Stückchen weiter gekommen. In meinem Fall (da ich ein Maven-GWT-Projekt habe),
musste ich den WAR Ordner auf /target/MyApp-1.0.0-SNAPSHOT setzen.
 
Sorry - Nachtrag:

Hab ja vergessen zu beschreiben wie das geht, falls das einer braucht, also:

Rechtsklick auf das Projekt -> Run As -> Run Configurations -> Arguments

Und dort die Variable -war "Pfad zum Ordner" angeben
 

Neue Themen


Zurück
Oben