tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Ellis <jdell...@home.com>
Subject Re: EJB
Date Wed, 15 Nov 2000 15:31:16 GMT
Actually, Peter is not using JOnAS, he is using Oracle.  Somewhere in the Oracle
documentation, it should say what type of environment you need to pass into the
new InitialContext() call or have in your jndi.properties file.

Typically, the parameters you will need are:

java.naming.factory.initial=<some oracle class that extends
javax.naming.spi.InitialContextFactory>
java.naming.provider.url=<some url specific to Oracle>
java.naming.security.principal=user_id
java.naming.security.credentials=password

These can be in a properties file called jndi.properties in your classpath, or you
can programatically set them into a Hashtable and pass the hashtable into your
InitialContext constructor.

Simon,

What I did to get the parameters was to put them in my web.xml file like:

    <context-param>
      <param-name>java.naming.factory.initial</param-name>

<param-value>com.inetbasics.server.naming.provider.rmi.RMIContextFactory</param-value>

      <description>blah</description>
    </context-param>

    <context-param>
      <param-name>java.naming.provider.url</param-name>
      <param-value>rmi://localhost:900/Storesmith</param-value>
      <description>blah</description>
    </context-param>

I then read them and pass them to InitialContext:

            Hashtable env = new Hashtable();

            env.put(Context.INITIAL_CONTEXT_FACTORY,
               servletContext.getInitParameter(Context.INITIAL_CONTEXT_FACTORY));
            env.put(Context.PROVIDER_URL,
               servletContext.getInitParameter(Context.PROVIDER_URL));

            if (userName != null)
            {
               env.put(Context.SECURITY_PRINCIPAL, userName);
               if (password == null)
                  password = "";
               env.put(Context.SECURITY_CREDENTIALS, password);
            }

           Context ctx = new InitialContext(env);

That works well for me, because I have to set the user id and password, but you
might not like the complicated way of setting the InitialContext.  I am
considering writing a security interceptor to do this stuff for me, however.

John

"Simon Oldeboershuis, outermedia" wrote:

> Hi Peter,
>
> I think you have to add the jndi.properties file (see JONAS_ROOT
> directory) to classpath. I have added it to the classpath of the
> environment in which tomcat is started. I tried to put into the
>         WEB-INF/lib packed into a test.jar -> no success
>         WEB-INF/classes -> no success
>         /tomcat/lib -> no success
>         export CLASSPATH=... -> SUCCESS
>
> Does anybody knows a better solution???
>
> simon
>
> Peter Knight schrieb:
> >
> > I have tried to invoke EJB's from TOMCAT and get:
> >
> > Internal Servlet Error:
> > javax.servlet.ServletException: Need to specify class name in environment or
> > system property:
> > Root cause:
> > javax.naming.NoInitialContextException: Need to specify class name in
> > environment or system property: e.t.c.
> >
> > The EJB resides in an Oracle 8i 8.1.6 database.
> > I have included the EJB API and the two EJB jar files in the class path and
> > it doesn't seem to matter what I do, I cannot get it to work!!
> > PLEASE PLEASE HELP ME!
> >
> > Regards Peter Knight
> >
> > _________________________________________________________________
> > Important Note: This E-Mail is confidential, it must not be read,
> > copied, disclosed or used by any person other than the above
> > named addressees. Unauthorised use, disclosure or copying is
> > strictly prohibited and may be unlawful. Eurostar (U.K.) Limited
> > disclaims any liability for any action taken in reliance on the
> > content of this E-Mail. The comments or statements expressed in
> > this E-Mail are not necessarily those of Eurostar (U.K.) Limited
> > or its subsidiaries or affiliates.
> >
> > Eurostar (U.K.) Ltd. Registered Office: Eurostar House, Waterloo
> > Station, London, SE1 8SE, Registered in England No. 2462001
> > VAT No. GB 657 719 590
> > _________________________________________________________________
>
>   ------------------------------------------------------------------------
>                  Name: sol.vcf
>    sol.vcf       Type: VCard (text/x-vcard)
>              Encoding: 7bit
>           Description: Visitenkarte für Simon Oldeboershuis, outermedia


Mime
View raw message