RE: RE: JNDI naming exception when running app on orion from JBuilder

2002-03-20 Thread DORAN, GRANT

I have done both of the things mentioned and it still doesn't work.
The JNDI properties only need to be set explicitly for jbuilder debugging.
I am informed by Borland that this is probably because jbuilder is using
it's own JNDI settings.
When I run the application in orion normally, it works fine without
specifying the JNDI settings,because I have put the ejb-ref tags in the
web.xml.
The problem is that, as shown below, the jndi.properties file in the
META-INF directory of the war file is not being found.
I'm pretty sure that if it was found, debugging would work.
I just don't understand why it isnt being found.

grant

 try:
 
 env.put(Context.PROVIDER_URL, ormi://localhost/flexisale2);
 
 instead of:
 
 env.put(Context.PROVIDER_URL, http://localhost/flexisale2;);
 
 That should give you the correct provider. I still don't understand why
 you are needing to specify JNDI properties.  If you are running both your
 Servlet and your EJB's in the same instance of Orion specifying the
 Provider and Context factory should not be required.
 
 I debug EJB's, JSP's (using development mode), and Servlets inside of
 JBuilder 5 Enterprise without a problem.  I have never needed to create an
 application-client.xml file. You do need, however, to specify the ejb-ref
 in the web.xml file.
 
 ejb-ref
   ejb-ref-nameejb/SPControllerHome/ejb-ref-name
   ejb-ref-typeSession/ejb-ref-type
   
 homeuk.co.britannic.flexisale.server.spcontroller.SPControllerHome/home
 
   
 remoteuk.co.britannic.flexisale.server.spcontroller.SPController/remote
 
 /ejb-ref
 
 
 
 
 
 
 Original Message:
 -
 From: DORAN, GRANT [EMAIL PROTECTED]
 Date: Tue, 19 Mar 2002 10:39:13 -
 To: [EMAIL PROTECTED]
 Subject: RE: JNDI naming exception when running app on orion from JBuilder
 
 
 
 Thanks,
 
 I am using JBuilder 6 Enterprise (trial) and debugging using the Non-jpda
 method described in the article that you mention.
 I have managed to move on slightly from that problem, by changing the code
 in the servlet to:
 
 Hashtable env = new Hashtable();
 env.put(Context.INITIAL_CONTEXT_FACTORY,
 com.evermind.server.ApplicationClientInitialContextFactory);
 env.put(Context.PROVIDER_URL, http://localhost/flexisale2;);
 
 // Get the initial JNDI context using our settings
 Context context;
 try
 {
   context = new InitialContext(env);
 }
 catch (Throwable e)
 {
   e.printStackTrace();
   throw new ServletException(
 Unable to get initial JNDI context:  + e.toString());
 }
 
 and by creating an application-client.xml file and puttnig it in the .war
 file in the META-INF directory.
 The xml file looks like this.
 
 ?xml version=1.0 encoding=UTF-8?
 !DOCTYPE application-client PUBLIC -//Sun Microsystems, Inc.//DTD J2EE
 Application Client 1.2//EN
 http://java.sun.com/j2ee/dtds/application-client_1_2.dtd;
 application-client
   display-nameSPcontroller/display-name
   ejb-ref
   ejb-ref-nameejb/SPControllerHome/res-ref-name
   ejb-ref-typeSession/res-type
  
 homeuk.co.britannic.flexisale.server.spcontroller.SPControllerHome/home
 
  
 remoteuk.co.britannic.flexisale.server.spcontroller.SPController/remote
 
   /ejb-ref
 /application-client
 
 But when the line creating the new context is run;
 
   context = new InitialContext(env);
 
 I get the following exception:
 
 javax.naming.NamingException: META-INF/application-client.xml resource not
 found (see J2EE spec, application-client chapter for requirements and
 format
 of the file)
   at
 com.evermind.server.ApplicationClientInitialContextFactory.getInitialConte
 xt
 (Unknown Source)
   at
 javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:665)
   at
 javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
   at javax.naming.InitialContext.init(InitialContext.java:222)
   at javax.naming.InitialContext.init(InitialContext.java:198)
   at
 uk.co.britannic.flexisale.server.test.TestServlet.init(TestServlet.java:46
 )
   at com.evermind._ah._axe(Unknown Source)
   at com.evermind._ah._fpd(Unknown Source)
   at com.evermind._ah._cwc(Unknown Source)
   at com.evermind._io._twc(Unknown Source)
   at com.evermind._io._gc(Unknown Source)
   at com.evermind._if.run(Unknown Source)
 
 This error occurs even when I'm running orion by itself.
 I've looked high and low and cant find any info that indicates why the
 file
 can't be found.
 Every example that I can find defines the provider_url as the root of the
 web application, like this;
 
env.put(Context.PROVIDER_URL, http://localhost/flexisale2;);
 
 If the application-client.xml file is in the META-INF directory of the web
 application, why do I get this error?
 Has anyone done this before?
 
 Thanks,
 
 
 Grant Doran
 Contract Java Developer/Architect
 Britannic Assurance
 
 
 
  -Original

RE: RE: JNDI naming exception when running app on orion from JBuilder

2002-03-19 Thread [EMAIL PROTECTED]


try:

env.put(Context.PROVIDER_URL, ormi://localhost/flexisale2);

instead of:

env.put(Context.PROVIDER_URL, http://localhost/flexisale2;);

That should give you the correct provider. I still don't understand why you are 
needing to specify JNDI properties.  If you are running both your Servlet and your 
EJB's in the same instance of Orion specifying the Provider and Context factory should 
not be required.

I debug EJB's, JSP's (using development mode), and Servlets inside of JBuilder 5 
Enterprise without a problem.  I have never needed to create an application-client.xml 
file. You do need, however, to specify the ejb-ref in the web.xml file.

ejb-ref
ejb-ref-nameejb/SPControllerHome/ejb-ref-name
ejb-ref-typeSession/ejb-ref-type
homeuk.co.britannic.flexisale.server.spcontroller.SPControllerHome/home
remoteuk.co.britannic.flexisale.server.spcontroller.SPController/remote
/ejb-ref






Original Message:
-
From: DORAN, GRANT [EMAIL PROTECTED]
Date: Tue, 19 Mar 2002 10:39:13 -
To: [EMAIL PROTECTED]
Subject: RE: JNDI naming exception when running app on orion from JBuilder
  


Thanks,

I am using JBuilder 6 Enterprise (trial) and debugging using the Non-jpda
method described in the article that you mention.
I have managed to move on slightly from that problem, by changing the code
in the servlet to:

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
com.evermind.server.ApplicationClientInitialContextFactory);
env.put(Context.PROVIDER_URL, http://localhost/flexisale2;);

// Get the initial JNDI context using our settings
Context context;
try
{
  context = new InitialContext(env);
}
catch (Throwable e)
{
  e.printStackTrace();
  throw new ServletException(
Unable to get initial JNDI context:  + e.toString());
}

and by creating an application-client.xml file and puttnig it in the .war
file in the META-INF directory.
The xml file looks like this.

?xml version=1.0 encoding=UTF-8?
!DOCTYPE application-client PUBLIC -//Sun Microsystems, Inc.//DTD J2EE
Application Client 1.2//EN
http://java.sun.com/j2ee/dtds/application-client_1_2.dtd;
application-client
display-nameSPcontroller/display-name
ejb-ref
ejb-ref-nameejb/SPControllerHome/res-ref-name
ejb-ref-typeSession/res-type
 
homeuk.co.britannic.flexisale.server.spcontroller.SPControllerHome/home
 
remoteuk.co.britannic.flexisale.server.spcontroller.SPController/remote
/ejb-ref
/application-client

But when the line creating the new context is run;

  context = new InitialContext(env);

I get the following exception:

javax.naming.NamingException: META-INF/application-client.xml resource not
found (see J2EE spec, application-client chapter for requirements and format
of the file)
at
com.evermind.server.ApplicationClientInitialContextFactory.getInitialContext
(Unknown Source)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:665)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
at javax.naming.InitialContext.init(InitialContext.java:222)
at javax.naming.InitialContext.init(InitialContext.java:198)
at
uk.co.britannic.flexisale.server.test.TestServlet.init(TestServlet.java:46)
at com.evermind._ah._axe(Unknown Source)
at com.evermind._ah._fpd(Unknown Source)
at com.evermind._ah._cwc(Unknown Source)
at com.evermind._io._twc(Unknown Source)
at com.evermind._io._gc(Unknown Source)
at com.evermind._if.run(Unknown Source)

This error occurs even when I'm running orion by itself.
I've looked high and low and cant find any info that indicates why the file
can't be found.
Every example that I can find defines the provider_url as the root of the
web application, like this;

   env.put(Context.PROVIDER_URL, http://localhost/flexisale2;);

If the application-client.xml file is in the META-INF directory of the web
application, why do I get this error?
Has anyone done this before?

Thanks,


Grant Doran
Contract Java Developer/Architect
Britannic Assurance



 -Original Message-
 From: [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED]]
 Sent: 18 March 2002 15:05
 To:   Orion-Interest
 Subject:  RE: JNDI naming exception when running app on orion from
 JBuilder  
 
 Are you running the servlet in orion or tomcat ?
 
 Does the console in JBuilder say:
 
 Orion/1.5.4 initialized (or whichever version you have)
 
 You should be able to make it work by replacing the code:
 
 java:comp/env/ejb/SPControllerHome
 
 with:
 
 SPControllerHome
 
 It sounds to me like you are running tomcat which is external to your
 session bean (not in the container) and requires the external context
 lookup.  If this is the case, a better solution would be to debug the
 servlet in Orion which would mean starting Orion