Enable the section you commented out in the web.xml file, and then try
accessing java:comp/env/Stamp. Or try browsing the JNDI context to see what's
in it. I think Sun provides a utility program for this purpose, but it's very
easy to just print the context and everything that's in it.

Ernst

James Ho wrote:
> 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.ApplicationInitialContextFactory");
>       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