1

I get this exception in the console when I start tomcat through eclipse. I dont understand what's wrong and can't find any way to fix it.

SEVERE: Error loading WebappClassLoader
  delegate: false
  repositories:
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@63d6a00c
 bm._.ops.web.DataServlet
java.lang.ClassNotFoundException: bm._.ops.web.DataServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:634)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:561)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:496)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1203)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

Mar 26, 2014 10:34:31 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /ops threw load() exception
java.lang.ClassNotFoundException: bm._.ops.web.DataServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:634)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:561)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:496)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1203)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

Edit: web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

    <description>
      OpsTools
    </description>
    <display-name>OpsTools</display-name>
    <servlet>
        <servlet-name>test</servlet-name>
        <servlet-class> bm._.ops.web.Test</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>upload</servlet-name>
        <servlet-class> bm._.ops.web.FileUploadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>upload</servlet-name>
        <url-pattern>/upload</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>fileUpload</servlet-name>
        <servlet-class> bm._.ops.web.FileUpload</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>fileUpload</servlet-name>
        <url-pattern>/fileUpload</url-pattern>
    </servlet-mapping>



    <servlet>
        <servlet-name>data</servlet-name>
        <servlet-class> bm._.ops.web.DataServlet</servlet-class>
        <init-param>
            <param-name>propertyFileName</param-name>
            <param-value>vcaps.properties</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>data</servlet-name>
        <url-pattern>/data</url-pattern>
    </servlet-mapping>


</web-app>
kschieck
  • 1,407
  • 2
  • 16
  • 29

2 Answers2

0

verify your web.xml. it says that the class was not found, because the class does not exist or the web.xml is not correct. Post your web.xml file

sadzag
  • 83
  • 7
  • there is a space at the begining of the declaration "(here)bm.validsur". your web.xml must be in WEB-Inf folder. – sadzag Mar 26 '14 at 15:09
  • The path to my web.xml file is `WORKSPACE\uploadTool\WebContent\WEB-INF\web.xml` – kschieck Mar 26 '14 at 15:14
  • I also removed the space, bt it didn't seem to change anything. – kschieck Mar 26 '14 at 15:16
  • Actually, no I get response code 500 from the others like /test, /upload... with exception `javax.servlet.ServletException: Wrapper cannot find servlet class bm._.ops.web.FileUpload or a class it depends on` root cause `java.lang.ClassNotFoundException` – kschieck Mar 26 '14 at 15:25
  • I should also mention, my coworker does not have this problem, using the same version of tomcat. and the same web.xml – kschieck Mar 26 '14 at 15:28
  • try to put only yourPackage.yourclass – sadzag Mar 26 '14 at 15:29
0

Navigate:: "Right Click (project Name) --> Properties --> Source" Tab and make sure "project/WebContent/WEB-INF/classes" is selected as default output folder.

Class files should be in "project/WebContent/WEB-INF"...