Hi,

My case is little bit different than yours but I thought you can still give
it a try. When I create the InitialContext(), I don't put in the
CONTEXT_FACTORY and PROVIDER_URL. It works for me even though my servlet and
EJBs are deployed in one application.

--Deepak

-----Original Message-----
From: James Ho [mailto:[EMAIL PROTECTED]]
Sent: Friday, September 22, 2000 11:13 PM
To: Orion-Interest
Subject: Servlet+EJB problem still not solved. :((


Hi all,

I have a urgent problem regarding EJB and servlet, I cannot find the
home interface of the bean from the servlet (whereas a standalone
client works very well)...Can anyone pls give me some hint as to what
maybe be wrong here?  Below is the background info, sorry, it is kind
of long...

My bean is called Stamp, the classes are

stamp.ejb.Stamp                 - remote
stamp.ejb.StampHome     - home
stamp.ejb.StampBean     - bean class
java.lang.String                - primaryKey

There are two applications deployed.
stamps - the EJBs
test - the servlets.

My problem, I CANNOT get the bean in servlet :((

Here is my ejb-jar.xml 

     <ejb-jar>
         <description></description>
         <enterprise-beans>
                <entity>
                        <description></description>
                        <ejb-name>Stamp</ejb-name>
                        <home>stamp.ejb.StampHome</home>
                        <remote>stamp.ejb.Stamp</remote>
                        <ejb-class>stamp.ejb.StampBean</ejb-class>
                        <primkey-class>java.lang.String</primkey-class>
                        <reentrant>True</reentrant>
                        <persistence-type>Bean</persistence-type>
                </entity>
         </enterprise-beans>

         <assembly-descriptor>
            <security-role>
               <description>Users</description>
               <role-name>users</role-name>
            </security-role>
            <method-permission>
               <description>Restricted</description>
               <role-name>users</role-name>
               <method>
                  <ejb-name>Stamp</ejb-name>
                  <method-name>*</method-name>
               </method>
            </method-permission>
         </assembly-descriptor>

     </ejb-jar> 

It works when I used standalone client, having this..
        <application-client>
        <display-name>Stamp</display-name>
        <description>Example Bank</description>
        <ejb-ref>
                <ejb-ref-name>Stamp</ejb-ref-name>
                <ejb-ref-type>Entity</ejb-ref-type>
                <home>stamp.ejb.StampHome</home>
                <remote>stamp.ejb.Stamp</remote>
        </ejb-ref>
        </application-client>


However, it doesn't work when using servlets, I have this..

<web-app>
   <display-name>Testing app</display-name>
   <servlet>
      <servlet-name>HelloServlet</servlet-name>
      <description>Servlet that calls the Stamp bean</description>
      <servlet-class>vc.web.HelloServlet</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>HelloServlet</servlet-name>
      <url-pattern>/test</url-pattern>
   </servlet-mapping>

<!--
        <ejb-ref>
                <ejb-ref-name>Stamp</ejb-ref-name>
                <ejb-ref-type>Entity</ejb-ref-type>
                <home>stamp.ejb.StampHome</home>
                <remote>stamp.ejb.Stamp</remote>
        </ejb-ref>
-->
</web-app>

Note that I have ejb-ref commented out, i had been told not to use
ejb-ref in web.xml for my case, and I do a lookup on the global name
of the bean, which is Stamp
        
        Object boundObject = context.lookup("Stamp");

but resulted in "javax.naming.NameNotFoundException: Stamp not found"

I have also been told that maybe it is because I hace the EJB/servlets
deployed sepearately as two apps.

I initialised the context using...

env.put(Context.INITIAL_CONTEXT_FACTORY,"com.evermind.server.ApplicationInit
ialContextFactory");
        env
put(Context.PROVIDER_URL,"ormi://p500.cheapdull.mine.nu/stamp");
        env.put(Context.SECURITY_PRINCIPAL,"admin");
        env.put(Context.SECURITY_CREDENTIALS,"123");
         
        context = new InitialContext(env);
 
(similar in the client as well, but use
ApplicationClientInitialContextFactory instead)

so does any one has any suggestion as to what amI doing wrong here?

Thanks heaps in advance. :)

Regards, James.



Reply via email to