Java Web Application - проблема с сервлетами - PullRequest
1 голос
/ 04 октября 2010

У меня есть сервлет, который выполняет следующие действия:

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)

Пожалуйста, помогите Спасибо!

При включении jaxrpc.jar в папку WEB-INF / lib я получаю следующую ошибку:

первопричина

java.lang.NoClassDefFoundError: орг / Apache / Ось / AxisFault java.lang.ClassLoader.defineClass1 (Native Метод) 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 (Native Метод) 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 (Native Метод) 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 (Native Метод) 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 ]

3 голосов
/ 04 октября 2010

Версия Tomcat и версия JDK / JRE были бы полезны.

Похоже, в вашем веб-приложении отсутствуют некоторые необходимые файлы из WEB-INF / lib;в частности jaxrpc jar.

1 голос
/ 04 октября 2010

Сервер сообщает, что вам не хватает библиотеки, содержащей javax.xml.rpc.ServiceException.

Однако код, который вы дали, похоже, не использует этот класс, поэтому я думаю, что ваша проблема не связана с вашим сервлетом.

0 голосов
/ 25 апреля 2017

извините за поздний ответ ... это может помочь кому-то в будущем.Пожалуйста, добавьте зависимость в ваш файл POM.

<dependency>
    <groupId>  javax.xml.rpc  </groupId>
    <artifactId>  javax.xml.rpc-api  </artifactId>
    <version>  1.1.1  </version>
</dependency>
0 голосов
/ 04 октября 2010

Причина, по которой вы получаете второе исключение:

java.lang.NoClassDefFoundError: орг / апач / Ось / AxisFault

Это потому что вы включили javax.xml.rpc.ServiceException. Я предполагаю, что вы используете Axis, иначе вы не получите AxisFault. Некоторые банки отсутствуют.

Если вы хотите, чтобы AxisFault исчез, скопируйте axis.jar (при условии, что вы используете старую ось 1) в папку WEB-INF/lib.

0 голосов
/ 04 октября 2010

Мне кажется, что где-то вдоль линии есть зависимость Apache Axis , которую необходимо учитывать в пути сборки вашего приложения. Скорее всего, это в обработке ошибок для ваших вызовов JAXRPC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...