The excpetion is java.lang.NoClassDefFoundError: UserIDPasswordException
that means Tomcat is unable to find this class at runtime. The Tomcat is
unable to pick this class from its classpath. The possible reason might
be that your this class may not be in the Tomcat classpath.

Regards
Bhushan


-----Original Message-----
From: A mailing list for discussion about Sun Microsystem's Java Servlet
API Technology. [mailto:[EMAIL PROTECTED]] On Behalf Of
Roberto Vallorani
Sent: Monday, February 17, 2003 2:33 PM
To: [EMAIL PROTECTED]
Subject: Servlet+RMI


I have a servlet LoginFormProcess that invoke the method
userAuthenticate to a remote server (in reality is local) called
UPAMImpl whose remote interface is UPAM; the method userAuthenticate
invoke other 2 methods to another remote server (also local) called
UPMDataManagerImpl. The two servers work fine with a test client but if
I use the LoginFormProcess as a client I obtain the following error:


Error: 500
Location: /Progetto/LoginFormProcess
Internal Servlet Error:

java.lang.NoClassDefFoundError: UserIDPasswordException
 at java.lang.Class.getDeclaredConstructors0(Native Method)
 at java.lang.Class.privateGetDeclaredConstructors(Class.java:1576)
 at java.lang.Class.getConstructor0(Class.java:1748)
 at java.lang.Class.newInstance0(Class.java:266)
 at java.lang.Class.newInstance(Class.java:249)
 at
org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:26
8)
 at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
 at org.apache.tomcat.core.Handler.service(Handler.java:254)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.jav
a:806)
 at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
 at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(H
ttpConnectionHandler.java:213)
 at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416
)
 at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:50
1)
 at java.lang.Thread.run(Thread.java:536)

where UserIDPasswordException is one of my own exception defined for the
server UPAMImpl. That exception is thrown correctly using a test client
without using RMI. The following is the code for LoginFormProcess and
the ConnectionServlet for the lookup to the RMI registry:

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import java.rmi.*;
import java.rmi.registry.*;

public class ConnectionServlet extends HttpServlet {

String registry;

UPAM upam;

public void init(ServletConfig config) throws ServletException {
super.init(config);  registry = config.getInitParameter("registry");
 if (registry == null) registry = "//localhost";

 try {

     String name = registry + "/upam";
     upam = (UPAM)Naming.lookup(name);

     }
     catch (Exception e) {
                 e.printStackTrace();

                          }


        }
 }
--------------------------------------------------------------------

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import java.rmi.*;
import java.rmi.registry.*;


public class LoginFormProcess extends ConnectionServlet {




  public void doPost (HttpServletRequest request, HttpServletResponse
response)
    throws ServletException, IOException {


     HttpSession session = request.getSession(true);
    //  String url;
      String userName = request.getParameter("userID");
     // String user = getDefinition(userName);
      String userPassword = request.getParameter("password");
  // String password = getDefinition(userPassword);
 //boolean check;

 String sessionID = session.getID();  System.out.println("SessionID=
"+sessionID);

 try {

   //UPAM upam = (UPAM)Naming.lookup("rmi://localhost/upam");


if(upam.userAuthenticate("sip:"+userName,userPassword,"aknadsnoasd")){

   //response.setContentType("text/html");

   // url ="/MainMenu.html";

    RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/MainMenu.html");
    dispatcher.forward(request, response);

    //session.setAttribute("sessionID",sessionID);
 }


 // controllo con il db
      //if (userName.equals("administrator") &&
userPassword.equals("ziopino")) {
   //  check = true;

      //   }

      //else   {
         //   check = false;
          //  url="/ErrorLogin.html";
          //  }

      //session.setAttribute("nomechetepareate", check);


  //    RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher(url);
  //  dispatcher.forward(request, response);
      }
 //catch(NotBoundException nbe) {
  //nbe.printStackTrace();
 // System.out.println("Client: Not Bound Exception");
 //}

 catch(java.net.MalformedURLException mue) {
  //mue.printStackTrace();
  System.out.println("Client: Malformed URL Exception");
 }

 catch(java.rmi.RemoteException re) {
  // re.printStackTrace();
  System.out.println("Client: Remote Exception");
 }
 catch(SystemFailureException sfe) {
  //mue.printStackTrace();
  //System.out.println("Client: SystemFailureException");

  //response.setContentType("text/html");

  //url="/ErrorDB.html";
    //System.out.println("Client: UserIDPasswordException");
    RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/ErrorDB.html");
       dispatcher.forward(request, response);

 }
 catch(UserIDPasswordException upe) {
 // re.printStackTrace();

 //res.setContentType("text/html");

  //url="/ErrorLogin.html";
 System.out.println("Client: UserIDPasswordException");
  RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/ErrorLogin.html");
    dispatcher.forward(request, response);

 }

  }
}

Everything in Tomcat is well configured as well as the Login html form.
For this 2 files I used the documentation in:

 http://developer.java.sun.com/developer/technicalArticles/RMI/rmi/

Hope to find an help,
Best regards,
             Roberto Vallorani

________________________________________________________________________
___
To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to