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:268)
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.java:806)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
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