Hi,

The error is indicating some kind of classpath problem. You have not
mentioned your environment.
Have you included client jar in your classpath.

Cheers
Ashwani

----- Original Message -----
From: "Edward" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, May 27, 2002 2:57 PM
Subject: Why my ejb can't run in the servlet?


> I have question about EJB,I want to call ejb from a servlet,but I can't
call it successfully.My EJB locates in follow directory:
>
>     F:\login\ejb\loginEJB\CheckPasswordHome.class
>     F:\login\ejb\loginEJB\CheckPassword.class
>     F:\login\ejb\loginEJB\CheckPasswordEJB.class
>     F:\login\ejb\loginEJB\CheckPasswordHome.java
>     F:\login\ejb\loginEJB\CheckPassword.java
>     F:\login\ejb\loginEJB\CheckPasswordEJB.java
>     F:\login\ejb\CheckPassword.jar
>     F:\login\ejb\META-INF\ejb-jar.xml
>     F:\login\ejb\META-INF\ejb-jar.xml
>
> I create CheckPassword.jar like follows:
> F:\login\ejb\>javac -classpath .;F:\j2sdkee1.3.1\lib\j2ee.jar
loginEJB\*.java
>
> file://CheckPasswordEJB.java
> package loginEJB;
> import javax.ejb.SessionContext;
> public class CheckPasswordEJB implements javax.ejb.SessionBean
> {
>  public void ejbCreate()
>  {  }
>  public void ejbRemove()
>  {  }
>  public void ejbActivate()
>  { }
>  public void ejbPassivate()
>  { }
>  public void setSessionContext(SessionContext ctx)
>  { }
>  public String logininformation(String username,String password)
>  { System.out.println("ID="+username+",Password="+password);
>    return "OK";}
> }
>
> My servlet locates in follow directory:
>
>     D:\Apache Tomcat 4.0\webapps\login\servlets\index.html
>     D:\Apache Tomcat
4.0\webapps\login\WEB-INF\classes\GetUserIdentity.class
>
> In my index.html,I call my servlet "GetUserIdentity.class",the file
"index.html" is follows:
>    <html>
>    <head>
>        <title>Check Identity</title>
>    </head>
>    <body>
>      <center>
>      <br><br>
>       <form
action="http://192.168.39.152:8080/login/servlet/GetUserIdentity";
method="POST">
>       <table align="center" width="%100" cellspacing="2" cellpadding="2">
>         <tr>
>            <td align="right">Input ID </td>
>            <td><input type="Text" name="ID" align="left" size=15></td>
>         </tr>
>         <br><br><br>
>         <tr>
>           <td align="right">Input Password </td>
>           <td><input type="password" name="password" align="left" size=15
color="red"></td>
>        </tr>
>       </table>
>       <br><br>
>       <input type="Submit" name="okbutton"     value="      OK      " >
>       <input type="button" name="cancelbutton" value="    Cancel    "
onclick="window.close()">
>       </form>
>      </center>
>     </body>
> <html>
>
> My GetUserIdentity is follows:
>
> import loginEJB.*;
> import java.util.Properties;
> import javax.naming.Context;
> import javax.naming.InitialContext;
>
> public class GetUserIdentity extends HttpServlet
> {
>
>  public void doPost(HttpServletRequest request,HttpServletResponse
response)
>      throws ServletException,IOException
>  {
>    String username=request.getParameter("ID");
>    String password=request.getParameter("password");
>    String pp=test();
>    out.println("<html>");
>    out.println("<title>Login Succeed!</title>");
>    out.println("<body>");
>    out.println("<p> ssssYour ID is "+username+"</p>");
>    out.println("<p> Your Password is "+password+"</p>");
>    out.println("<p> Message is "+pp+"</p>");
>    out.println("</body>");
>      out.println("</html>");
>   }
>
>  }
>
>  public String test()
>  {
>   try
>   {
>
>    String message = "";
>    Properties prop=new Properties();
>
prop.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFact
ory");
>    prop.put(Context.PROVIDER_URL,"t3://192.168.39.152:7001");
>    Context ctx=new InitialContext(prop);
>    Object objref=ctx.lookup("CheckPassword");
>    CheckPasswordHome
home=(CheckPasswordHome)javax.rmi.PortableRemoteObject.narrow(
>       objref,CheckPasswordHome.class);
>    CheckPassword ss=home.create();
>    message=ss.logininformation("Mary","456");
>    System.out.println("Return message:"+message);
>    ss.remove();
>
>    return message;
>
>   }
>   catch(Exception e)
>   {
>    e.printStackTrace();
>   }
>   finally
>   {
>    return "abc";
>   }
>  }
>
> }
>
> When I run index.html,and click OK button,it raise follows error:
>
> type Exception report
> message Internal Server Error
> description The server encountered an internal error (Internal Server
Error) that prevented it from fulfilling this request.
> exception
> javax.servlet.ServletException: Cannot allocate servlet instance for path
/login/servlet/GetUserIdentity
>  at
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java
:415)
>  at
org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
>  at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
>  at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:201)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
>  at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>  at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>  at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:163)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1011)
>  at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106
)
>  at java.lang.Thread.run(Unknown Source)
> root cause
> java.lang.NoClassDefFoundError: javax/ejb/EJBObject
>  at java.lang.Class.newInstance0(Native Method)
>  at java.lang.Class.newInstance(Unknown Source)
>  at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:820)
>  at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:615)
>  at
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java
:396)
>  at
org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
>  at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
>  at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:201)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
>  at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>  at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>  at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:163)
>  at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>  at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1011)
>  at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106
)
>  at java.lang.Thread.run(Unknown Source)
>
> I'm very puzzled with it,because I make a test my ejb program,it can run
at command prompt,my test ejb program like that:
>
> file://testEJB.java
> import loginEJB.*;
> import java.util.Properties;
> import javax.naming.Context;
> import javax.naming.InitialContext;
> public class testEJB
> {
>  public static void main(String args[])
>  {
>   test();
>  }
>  public static void test()
>  {
>   try
>   {
>    String message;
>    Properties prop=new Properties();
>
prop.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFact
ory");
>    prop.put(Context.PROVIDER_URL,"t3://192.168.39.152:7001");
>    Context ctx=new InitialContext(prop);
>    Object objref=ctx.lookup("CheckPassword");
>    CheckPasswordHome
home=(CheckPasswordHome)javax.rmi.PortableRemoteObject.narrow(
>       objref,CheckPasswordHome.class);
>    CheckPassword ss=home.create();
>    message=ss.logininformation("Mary","123");
>    System.out.println("Return message:"+message);
>    ss.remove();
>   }
>   catch(Exception e)
>   {
>    e.printStackTrace();
>   }
>  }
>
> }
>
> The file testEJB.java locates F:\login\ejb\testEJB.java
> When I compile it likes follows:
>    F:\login\ejb\>javac -classpath
.;F:\j2sdkee1.3.1\lib\j2ee.jar;E:\bea\wlserver6.1\lib\weblogic.jar;CheckPass
word.jar testEJB.java
>
> Then I run it like follows:
>    F:\login\ejb\>java -classpath
.;F:\j2sdkee1.3.1\lib\j2ee.jar;E:\bea\wlserver6.1\lib\weblogic.jar;CheckPass
word.jar testEJB
>
> I found testEJB runs  well. I'm very puzzled why I put parts code of it
into a servlet,it can't work??? I don't know the reason,Please help me!
> Any idea will be appreciated!
> Thanks in advances!!!
>
> Edward
>
>
===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body
> of the message "signoff EJB-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>
>

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to