Announcement

Collapse
No announcement yet.

javax.servlet.ServletException: Error instantiating servlet class

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

  • javax.servlet.ServletException: Error instantiating servlet class

    Hi,
    ich habe folgendes Problem:
    Beim Start von Tomcat bekomme ich in der localhost_log.txt folgende Exception:
    -------------------------------------------------------------------
    2007-04-18 08:47:06 StandardContext[/serWebPortal]Marking servlet AbstractQmhPortalServlet as unavailable
    2007-04-18 08:47:06 StandardContext[/serWebPortal]Servlet /serWebPortal threw load() exception
    javax.servlet.ServletException: Error instantiating servlet class com.ser.ser.servlet.AbstractQmhPortalServlet
    at org.apache.catalina.core.StandardWrapper.loadServl et(StandardWrapper.java:996)
    at org.apache.catalina.core.StandardWrapper.load(Stan dardWrapper.java:862)
    at org.apache.catalina.core.StandardContext.loadOnSta rtup(StandardContext.java:4013)
    at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4357)
    at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:823)
    at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:807)
    at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:595)
    at org.apache.catalina.core.StandardHostDeployer.addC hild(StandardHostDeployer.java:903)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.commons.beanutils.MethodUtils.invokeMet hod(MethodUtils.java:216)
    at org.apache.commons.digester.SetNextRule.end(SetNex tRule.java:256)
    at org.apache.commons.digester.Rule.end(Rule.java:276 )
    at org.apache.commons.digester.Digester.endElement(Di gester.java:1058)
    at org.apache.catalina.util.CatalinaDigester.endEleme nt(CatalinaDigester.java:76)
    at org.apache.xerces.parsers.AbstractSAXParser.endEle ment(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParse r.emptyElement(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyEl ement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$Cont entDispatcher.scanRootElementHook(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse( Unknown Source)
    at org.apache.commons.digester.Digester.parse(Digeste r.java:1567)
    at org.apache.catalina.core.StandardHostDeployer.inst all(StandardHostDeployer.java:488)
    at org.apache.catalina.core.StandardHost.install(Stan dardHost.java:863)
    at org.apache.catalina.startup.HostConfig.deployDescr iptors(HostConfig.java:483)
    at org.apache.catalina.startup.HostConfig.deployApps( HostConfig.java:427)
    at org.apache.catalina.startup.HostConfig.start(HostC onfig.java:983)
    at org.apache.catalina.startup.HostConfig.lifecycleEv ent(HostConfig.java:349)
    at org.apache.catalina.util.LifecycleSupport.fireLife cycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1091)
    at org.apache.catalina.core.StandardHost.start(Standa rdHost.java:789)
    at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1083)
    at org.apache.catalina.core.StandardEngine.start(Stan dardEngine.java:478)
    at org.apache.catalina.core.StandardService.start(Sta ndardService.java:480)
    at org.apache.catalina.core.StandardServer.start(Stan dardServer.java:2313)
    at org.apache.catalina.startup.Catalina.start(Catalin a.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:287)
    at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:425)
    ----- Root Cause -----
    java.lang.InstantiationException
    at sun.reflect.InstantiationExceptionConstructorAcces sorImpl.newInstance(InstantiationExceptionConstruc torAccessorImpl.java:30)
    at java.lang.reflect.Constructor.newInstance(Construc tor.java:274)
    at java.lang.Class.newInstance0(Class.java:308)
    at java.lang.Class.newInstance(Class.java:261)
    at org.apache.catalina.core.StandardWrapper.loadServl et(StandardWrapper.java:987)
    at org.apache.catalina.core.StandardWrapper.load(Stan dardWrapper.java:862)
    at org.apache.catalina.core.StandardContext.loadOnSta rtup(StandardContext.java:4013)
    at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4357)
    at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:823)
    at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:807)
    at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:595)
    at org.apache.catalina.core.StandardHostDeployer.addC hild(StandardHostDeployer.java:903)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.commons.beanutils.MethodUtils.invokeMet hod(MethodUtils.java:216)
    at org.apache.commons.digester.SetNextRule.end(SetNex tRule.java:256)
    at org.apache.commons.digester.Rule.end(Rule.java:276 )
    at org.apache.commons.digester.Digester.endElement(Di gester.java:1058)
    at org.apache.catalina.util.CatalinaDigester.endEleme nt(CatalinaDigester.java:76)
    at org.apache.xerces.parsers.AbstractSAXParser.endEle ment(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParse r.emptyElement(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyEl ement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$Cont entDispatcher.scanRootElementHook(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse( Unknown Source)
    at org.apache.commons.digester.Digester.parse(Digeste r.java:1567)
    at org.apache.catalina.core.StandardHostDeployer.inst all(StandardHostDeployer.java:488)
    at org.apache.catalina.core.StandardHost.install(Stan dardHost.java:863)
    at org.apache.catalina.startup.HostConfig.deployDescr iptors(HostConfig.java:483)
    at org.apache.catalina.startup.HostConfig.deployApps( HostConfig.java:427)
    at org.apache.catalina.startup.HostConfig.start(HostC onfig.java:983)
    at org.apache.catalina.startup.HostConfig.lifecycleEv ent(HostConfig.java:349)
    at org.apache.catalina.util.LifecycleSupport.fireLife cycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1091)
    at org.apache.catalina.core.StandardHost.start(Standa rdHost.java:789)
    at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1083)
    at org.apache.catalina.core.StandardEngine.start(Stan dardEngine.java:478)
    at org.apache.catalina.core.StandardService.start(Sta ndardService.java:480)
    at org.apache.catalina.core.StandardServer.start(Stan dardServer.java:2313)
    at org.apache.catalina.startup.Catalina.start(Catalin a.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:287)
    at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:425)
    -------------------------------------------------------------------
    In der web.xml der Anwendung habe ich folgendes:
    <web-app>
    <servlet>
    <servlet-name>AbstractQmhPortalServlet</servlet-name>
    <description>Basisklasse fuer die Search-Servlets</description>
    <servlet-class>com.ser.ser.servlet.AbstractQmhPortalServlet </servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    ...
    <servlet-mapping>
    <servlet-name>AbstractQmhPortalServlet</servlet-name>
    <url-pattern>/AbstractQmhPortalServlet</url-pattern>
    </servlet-mapping>
    ...
    </web-app>

    Wenn ich in der web.xml die Zeile <load-on-startup>1</load-on-startup> raus nehme verschwindet auch die Exception aus dem Log-File. Ich benötige aber die frühe Initialisierung des Servlets und kann somit eigentlich nicht auf das load-on-startup verzichten.

    An dem Servlet selbst scheint es nicht zu liegen. Ich habe schon alles darin auskommentiert, so dass ich nur noch eine leere Seite im Browser angezeigt bekam. Die Exception trat aber immer noch auf.

    Im der Applikation und somit in der web.xml gibt es noch weitere 5 Servlets auch mit load-on-startup. Dort stört diese Zeile nicht.

    Habt ihr eine Ahnung was das sein kann?

  • #2
    Ist die Servlet-Klasse abstract (weil sie AbstractQmhPortalServlet heißt)? Das darf natürlich nicht sein, weil er dann keine Instanz erzeugen kann. In diesem Fall müßte es aber auch krachen, wenn Du das <load-on-startup> rausnimmst (in diesem Fall halt erst, wenn /AbstractQmhPortalServlet das erste mal angesprochen wird).

    Comment


    • #3
      Ja, klasse. Das war die Lösung.
      Wenn ich das abstract aus der Klasse herausnehme kommt auch keine Exception mehr.

      Logisch, dass man eine abstrakte Klasse nicht instanziieren kann und genau dies beim load-on-startup gemacht wird. Auf letzteres bin ich nicht gekommen. Vielen Dank also.

      Comment

      Working...
      X