I am trying to invoke a simple HelloServlet in WLS 6.1 SP 5. But I am getting a ClassNotFoundException. The exception looks like:
********************************************************
java.lang.ClassNotFoundException: test.HelloServlet
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:185)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:62)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:41)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:598)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:370)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:240)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2678)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2412)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
javax.servlet.ServletException: Servlet class: 'test.HelloServlet' could not be loaded - the requested class wasn't found in the classpath: '/devl/xyz/1.0/wls/xyzdomain/applications/.wlnotdelete/HelloWebApp33640.war'
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:609)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:370)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:240)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2678)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2412)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
********************************************************
Entry for the war file in config.xml:
********************************************************
<Application Deployed="true" Name="HelloWebApp"
Path="/devl/xyz/1.0/wls/webapp/deploy" StagedTargets="server1">
<WebAppComponent DeploymentOrder="1001" Name="HelloWebApp"
Targets="server1" URI="hello.war"/>
</Application>
********************************************************
Is there anything to be added to the server classpath??
Please help.
Thanks,
Goutam.
If you are new to the weblogic server, you may also refer to the examples shipped along with it.
web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 1.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>test.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<url-pattern>/hello</url-pattern>
<servlet-name>hello</servlet-name>
</servlet-mapping>
</web-app>
************************
contents of the war file:
META-INF/
META-INF/MANIFEST.MF
HelloServlet.java
test/
test/HelloServlet.class
WEB-INF/
WEB-INF/web.xml
*********************************
HelloServlet.java file:
package test;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloServlet extends HttpServlet {
public void doGet (HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out = res.getWriter();
out.println("Hello, world!");
out.close();
}
}
***************************************************