Java Web应用程序 - Servlet问题

时间:2010-10-04 10:59:18

标签: java web-applications tomcat

我有servlet执行以下操作:

public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        request.getAttribute("username");
        request.getAttribute("password");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        LoginManager lm = new LoginManager(username.trim(), password.trim());

每当我到达最后一个tomcat apache“崩溃”时出现以下错误消息:

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: javax/xml/rpc/ServiceException
    servlets.LoginServlet.doPost(LoginServlet.java:20)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.ClassNotFoundException: javax.xml.rpc.ServiceException
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1666)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
    servlets.LoginServlet.doPost(LoginServlet.java:20)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

请帮助 谢谢!

在WEB-INF / lib文件夹中包含jaxrpc.jar时,出现以下错误:

根本原因

  

java.lang.NoClassDefFoundError:   组织/阿帕奇/轴/ AxisFault     java.lang.ClassLoader.defineClass1(母语   方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2778)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1139)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)     java.lang.ClassLoader.defineClass1(母语   方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2778)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1139)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)     servlets.LoginServlet.doPost(LoginServlet.java:20)     javax.servlet.http.HttpServlet.service(HttpServlet.java:641)     javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

     

根本原因

     

抛出java.lang.ClassNotFoundException:   org.apache.axis.AxisFault     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1666)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)     java.lang.ClassLoader.defineClass1(母语   方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2778)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1139)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)     java.lang.ClassLoader.defineClass1(母语   方法)     java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)     需要java.lang.ClassLoader.defineClass(ClassLoader.java:616)     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)     org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2778)     org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1139)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)     servlets.LoginServlet.doPost(LoginServlet.java:20)     javax.servlet.http.HttpServlet.service(HttpServlet.java:641)     javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

5 个答案:

答案 0 :(得分:3)

Tomcat版本和JDK / JRE版本会有所帮助。

看起来你的webapp缺少来自WEB-INF / lib的一些必需的jar;特别是jaxrpc jar。

答案 1 :(得分:1)

服务器告诉您缺少一个包含javax.xml.rpc.ServiceException的库。

但是,您提供的代码似乎没有使用此类,因此我认为您的问题与您的Servlet无关。

答案 2 :(得分:0)

在我看来,就好像某个地方有一个Apache Axis依赖关系需要在应用程序的构建路径中解决。可能是,这是JAXRPC调用的错误处理。

答案 3 :(得分:0)

你获得第二个例外的原因:

  

java.lang.NoClassDefFoundError:   组织/阿帕奇/轴/ AxisFault

这是因为你已经包含了javax.xml.rpc.ServiceException。我假设你正在使用Axis,否则你将无法获得AxisFault。有些罐子不见了。

如果您希望AxisFault消失,请将axis.jar(假设您正在运行旧轴1)复制到WEB-INF/lib文件夹。

答案 4 :(得分:-1)

抱歉迟到的回复......这可能会对将来有所帮助..

java.lang.ClassNotFoundException:javax.xml.rpc.ServiceException  它说它找不到javax.xml.rpc jar。 请将依赖项添加到您的POM文件中。

<dependency>
    <groupId>  javax.xml.rpc  </groupId>
    <artifactId>  javax.xml.rpc-api  </artifactId>
    <version>  1.1.1  </version>
</dependency>