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