You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2001/10/21 16:00:58 UTC

DO NOT REPLY [Bug 4315] New: - EJB Access with weblogic.jar included: Can't access new InitialContext()

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4315>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4315

EJB Access with weblogic.jar included: Can't access new InitialContext()

           Summary: EJB Access with weblogic.jar included: Can't access new
                    InitialContext()
           Product: Tomcat 4
           Version: 4.0.1 Final
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: pr@webapp.de


I inserted weblogic.jar at WEB-INF/lib/ and than I get a
Exception for usage InitialContext context = new InitialContext();
(s. error message)

But I can access the weblogic ejb with

>>>
Properties props = new Properties() ;
         props.put(Context.INITIAL_CONTEXT_FACTORY,
                   "weblogic.jndi.WLInitialContextFactory");
         props.put(Context.PROVIDER_URL,
                   "t3://127.0.0.1:7001" );
         Context   ctx = new InitialContext(props);

<<<
also when I copy a correct jndi.properties to WEB-INF/classes/
I got with InitialContext context = new InitialContext() the weblogic server.

Question is:
How can I access the local Tomcat context also ?
How can I setup at server.xml remote ejb references ?

The current syntax is little bit strange:

          <Ejb   name="ejb/Echo" type="Session"
                 home="echo.EchoHome"
               remote="echo.Echo" />

On which Server the EJB is located ?


Why we can't used the following example ?

          <Ejb name="ejb/Echo"
               type="Session"
               home="echo.EchoHome"
               remote="echo.Echo"
               remote-jndi="echo.EchoHome" 
 	       factory="weblogic.jndi.WLInitialContextFactory"
               factoryLocation="t3://127.0.0.1:7001"
               principal="system"
               credentials="weblogic"
/>

At Weblogic WEBAPP'S you can transfer with weblogic.xml from
web.xml ejb reference to concrete jndi lookups.

----web.xml
   <ejb-ref>
      <description>Example EJB Reference</description>
      <ejb-ref-name>ejb/Echo</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <home>echo.EchoHome</home>
      <remote>echo.Echot</remote>
    </ejb-ref>

----weblogic.xml
<weblogic-webapp>
 <reference-descriptor>
    <ejb-reference-description>
  	<ejb-ref-name>ejb/Echo</ejb-ref-name>
  	<jndi-name>echo.EchoBean</jndi-name>
    </ejb-reference-description>
  </reference-descriptor>
<weblogic-webapp>


Or is the EJB Syntax only for J2EE 1.3 Reference Implementation usefull ?

Regards,
Peter

Error Message:
Apache Tomcat/4.0.1 - HTTP Status 500 - Internal Server 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 instantiate class: 
org.apache.naming.java.javaURLContextFactory
	at AccessJndiServlet.init(AccessJndiServlet.java:26)
	at javax.servlet.GenericServlet.init(GenericServlet.java:258)
	at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:852)
	at 
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:615)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
14)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	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.java:2
01)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	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:566)
	at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java
:170)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	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:566)
	at 
org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:221
)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	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(Thread.java:484)


root cause 

javax.naming.NoInitialContextException: Cannot instantiate class: 
org.apache.naming.java.javaURLContextFactory.  Root exception is 
java.lang.ClassCastException: org.apache.naming.java.javaURLContextFactory
	at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:658)
	at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:242)
	at javax.naming.InitialContext.init(InitialContext.java:218)
	at javax.naming.InitialContext.(InitialContext.java:174)
	at AccessJndiServlet.init(AccessJndiServlet.java:20)
	at javax.servlet.GenericServlet.init(GenericServlet.java:258)
	at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:852)
	at 
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:615)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
14)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	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.java:2
01)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	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:566)
	at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java
:170)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	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:566)
	at 
org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:221
)
	at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	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(Thread.java:484)



--------------------------------------------------------------------------------