Access EJB's deployed in WL 61 from Tomcat 4.0.3

Question -
Can anyone point me at documentation that will help me understand what jar files
are required to allow access EJB's that are deployed in Weblogic 6.1 from a Servlet
that is running under Tomcat.
I am currently getting the following exception:
javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory.
Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1394)
Thanks,
Gary Bartlett

I got the same problem.
Some posts here suggest you should put weblogic.jar under /common/lib,
I tried it but it didn't work. I also tried to put it under
webapps/yourweb/web-inf/lib
but it didn't work too. At last I had to unpack the weblogic.jar and put
them under
webapps/yourweb/web-inf/classes. This at least solved the problem you
mentioned.
I got other problem like ClassCastException that might be due to my own
code.
Anyway you can try the above approach. And please post your results here
just let
others know.
Thanks.
"Gary Bartlett" <[email protected]> wrote in message
news:3ce3fdf1$[email protected]..
>
Question -
Can anyone point me at documentation that will help me understand what jarfiles
are required to allow access EJB's that are deployed in Weblogic 6.1 froma Servlet
that is running under Tomcat.
I am currently getting the following exception:
javax.naming.NoInitialContextException: Cannot instantiate class:weblogic.jndi.WLInitialContextFactory.
>
>
>
Root exception is java.lang.ClassNotFoundException:weblogic.jndi.WLInitialContextFactory
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1394)
>
>
Thanks,
Gary Bartlett

Similar Messages

  • Accessing JMS UDD deployed on OSB cluster from a composite JMS adapter deployed on soa cluster

    Our environment setup
    Single domain with three clusters
    osb_cluster.soa_cluster and   bam_cluster
    osb_cluster: osb_server1 and osb_server2
    wlsbJMSServer_auto_1: targetted to osb_server1
    wlsbJMSServer_auto_2: targetted to osb_server2
    osb_subdeployment1:targetted to wlsbJMSServer_auto_1 and wlsbJMSServer_auto_2 JMS servers
    osb_subdeployment1 has JMS UDD queue jms/wlsb/queue
    soa_cluster: soa_server1 and soa_server2
    There is a BPEL composite deployed to soa_cluster. It has JMS adapter trying to read messages from jms/wlsb/queue
    JCA JMSAdapter is deployed to osb,soa clusters and Admin server
    ConnectionFactory is targetted to soa and osb clusters (osb_cluster and soa_cluster)
    We have bounced soa and osb  servers(not admin) after jms changes.
    soa log says
    JMSAdapter Composite1l JmsDDEndpoint_onFailure: Unable to resolve 'jms.wlsb.queue. Resolved 'jms'
    Can we access JMS destinations deployed  on one cluster from different cluster?
    If yes, how can we do that ? do we need  to modify BPEL JCA file to indicate destination is on another cluster?
    Thanks,
    Praveen

    Anybody has faced similar issue?

  • Access EJB 3.0 (deployed on Glassfish v3) from Tomcat 6.0.20 (Netbeans 6.8)

    Hi all,
    I'm a newbie (of java EE and Sun forum).
    I have a problem.
    I followed this tutorial: http://technology.amis.nl/blog/1368/connecting-to-an-ejb-30-remote-sessionbean-from-tomcat
    using Netbeans 6.8, Tomcat 6.0.20, Glassfish v3.
    The deploy of EJB on Glassfish is OK.
    The deploy of WebApp on Tomcat is OK.
    But when I access to the servlet using the browser I receive this exception.
    javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.init(InitialContext.java:223)
    at javax.naming.InitialContext.<init>(InitialContext.java:197)
    at web.MyServlet.processRequest(MyServlet.java:51)
    at web.MyServlet.doGet(MyServlet.java:75)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Thread.java:619)
    I know that I must copy *.jar files in Tomcat dir and App libraries (https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#Step_3._Include_appserv-rt.jar_and), but it doesn't work.
    What are my mistakes?
    Thank you for your help.
    Servlet code:
    package web;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.Properties;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import testbean.MySessionBeanRemote;
    * @author Stefano
    public class MyServlet extends HttpServlet {
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    * @throws ServletException if a servlet-specific error occurs
    * @throws IOException if an I/O error occurs
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
    props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
    props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
    props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
    try {
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Servlet MyServlet</title>");
    out.println("</head>");
    out.println("<body>");
    out.println(MySessionBeanRemote.class.getName());
    try {
    InitialContext ic = new InitialContext(props);
    MySessionBeanRemote mySessionRemote = (MySessionBeanRemote) ic.lookup("pippo");
    out.println(mySessionRemote.getOK());
    } catch (NamingException ex) {
    ex.printStackTrace();
    out.println("</body>");
    out.println("</html>");
    } finally {
    out.close();

    Yes, I did.
    I'm not sure about the right actions to do.
    For example: the Glassfish FAQ told me to add gf-client*.jar to the Tomcat folder, not appserv-rt.jar , with v3.
    I tried with both files. I restarted Tomcat, but nothing work :-(

  • Running netscape servlet access a weblogic deployed bean

    I an having problems creating the initialcontext object when tring to access a
    bean deployed in
    Weblogic6.0 from a servlet running in netscape Iplanet server. Has anyone every
    got this to work?
    Is this a valid configuration or does the servlet have to be running in the weblogic
    server.
    Thanks Doug

    I an having problems creating the initialcontext object when tring to access a
    bean deployed in
    Weblogic6.0 from a servlet running in netscape Iplanet server. Has anyone every
    got this to work?
    Is this a valid configuration or does the servlet have to be running in the weblogic
    server.
    Thanks Doug

  • How to access EJB deployed in JBOSS 4 from Creator

    Hello.
    I am trying to access EJBs deployed on JBOSS in order to develop a web app client, when I import the EJB set from Creator (sessions and entities packages in a jar file) I got the following error message....."No EJB set found in file....." .
    I presume there is an kind of xml file description specific for Sun App Server missing. I would like to know if there is other way to expose EJB in creator?....maybe write a config file by hand.
    I already read the tutorials related to EJB but those only use pre build EJB jars for Sun App Sserver.
    Also I read all the posted about JBoos and EJB in this forum but those are pretty general.
    By the way I have Delegate classes to access the EJB. How do I register my delegates in Creator in order to expose their methods?
    I�ll really appreciate some light in this matter.
    Thanks in advance!!!

    Hi,
    The below forum thread may help you :
    http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=51321
    Thanks,
    Runa.

  • Can't access EJB deployed on remote OC4J - what am I doing wrong?

    I'm unable to access an EJB deployed on a remote OC4J instance (ie, part of a 9iAS installation on another machine vs local in JDeveloper).
    I've reverted to a stupid-simple EJB in hopes of getting it going prior to trying my actual code. The EJB works fine in JDev (9.0.3) - I 'run' the EJB to start the local OC4J instance, run my client code (generated via the "New Sample Java Client..." option in the Navigator context popup) and all is well.
    I then create an EAR file via the the "Create EJB Jar Deployment Profile..." context popup of the ejb-jar.xml node, followed by "Deploy to EAR file" from the context popup of the resulting ejb1.deploy node. I next "Deploy EAR File" via the "Oracle Enterprise Manager" that comes with 9iAS (the :1810 port). After successfully deploying, I modify my client code in JDeveloper, specifying the new connection information for the remote machine via the Hashtable constructor of InitialContext and attempt to run it. I've tried a number of Context.PROVIDER_URL forms, including: ormi://registered_pingable_host_name:23791/deployed_application_name
    ormi://registered_pingable_host_name:23791/session_deployment_name (from the <enterprise-beans><session-deployment name="xxx"/></enterprise-beans> section of my orion-ejb-jar.xml file, as per a tip in this forum)
    I've tried prefixing ormi:// with http:, but get no response whatesoever in this case.
    I've also tried it without the port number (this port number matches that in my remote OC4J's <oc4j_instance_home>/config/rmi.xml file).
    On the Context.SECURITY_PRINCIPAL and Context.SECURITY_CREDENTIALS settings, I've tried various values, generally using the 'admin' user, with passwords taken from:
    <oc4j_instance_home>/principals.xml
    <oc4j_instance_home>/application-deployments/application_name/principals.xml
    I've also tried matching the password in the jazn-data.xml, to no avail - this password appears encrypted anyway, but thought I'd give it a try on the off-chance that it was just a randomly-generated password - no go.
    I've also tried SCOTT/TIGER, anonymous, etc. Incidentally, the 'deactivated' attribute of the <user> tag is set to "false" in my principals.xml files.
    No matter what I do, I always get back "javax.naming.NamingException: Lookup error: java.net.ConnectException: Connection refused: connect"
    Additionally, I get this same message when I try to establish an Application Server Connection via JDev.
    Clearly, I'm missing something critical (and probably simple), but I can't for the life of me figure it out.
    Any help would be much appreciated!
    Thanks,
    Jim Stoll

    Ok, well this is a bit strange...
    3103 - 3103 also fails, and some experimentation has led me to find that any time that I specify a range smaller than 6 (3101 - 3106 works, 3101 - 3105, 3101-3101, 3103-3103, etc does not), the OC4J instance will not restart. I get "An error occurred while starting. The opmn request has failed. From opmn: HTTP/1.1 204 No Content Content-Length: 0 Content-Type: text/html Response: 0 of 1 processes started. Check opmn log files such as ipm.log and ons.log for detailed." in the OEM window (I specify the RMI port range, hit Apply, go to the OC4J instance home page, see that the Status is 'Down', hit Start, and get that message.) <ORACLE_HOME>/product/iasinfra/opmn/logs/ipm.log tells me:
    02/12/03 09:41:12 There is no rmi port left for starting an OC4J process. Please check oc4j's port property in OPMN's configuration file.
    02/12/03 09:41:12 start_proc: UID 3719788: failed to build args
    02/12/03 09:41:12 start_proc_req: failed to start a process in GID OC4JJim2, type: 2
    If I bump it up to 3101 - 3106 or higher, it starts right up. Running opmnadmin debug, as suggested by Venky (thanks Venky!), yields:
    PROCESS TABLE
    UID PID FLAGS TYPE STATUS REF HTTP AJP RMI JMS
    3654011 84 00000040 OC4J Alive 1 0 3005 3106 3206
    424987 604 00000000 Apache Alive 1 7777 0 0 0
    2932088 14849 00000000 OC4J Alive 1 0 3003 3103 3203
    3063160 14878 00000000 OC4J Alive 1 0 3001 3101 3201
    3194232 14906 00000000 OC4J Alive 1 0 3000 3105 3205
    3325304 14936 00000000 OC4J Alive 1 0 3002 3102 3202
    3456376 14964 00000000 OC4J Alive 1 0 3004 3104 3204
    Which is what I would expect, given the specified range of 3101-3106. Trying each of these ports in turn, I've found that I can hit the EJB successfully on 3106, but 3101 - 3105 all fail with:
    javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: No such domain/application: Project7_2; nested exception is:
         javax.naming.AuthenticationException: No such domain/application: Project7_2
         java.lang.Object com.evermind.server.rmi.RMIContext.lookup(java.lang.String)
              RMIContext.java:134
         java.lang.Object javax.naming.InitialContext.lookup(java.lang.String)
              InitialContext.java:350
         void Samplemypackage9.MySessionEJBClient1.main(java.lang.String[])
              MySessionEJBClient1.java:15
    I'm a little concerned about assuming the high-end of the range to be the active port on a regular basis (though thus far, among about 20 - 30 tries spaced over 20 - 30 minutes, it has been...) - I guess I can have my code loop through the range until it finds a good port or exhausts the list, but that seems a bit excessive.
    Can you think of a reason that my OC4J instance won't start with a range size of less than 6? I'm on 9iAS 9.0.2, if that makes any difference.
    Thanks,
    Jim

  • Issues in looking up a ejb deployed on glassfish from tomcat.

    Hi all,
    I have followed the steps mentioned in the EJB FAQ in the glassfish site and was able to lookup a remote ejb deployed in glassfish from a standalone client.
    In case of standalone client, i set the appropriate jndi properties in the initial context as mentioned in the FAQ and added the 4 jars specified to the classpath of the application.
    It all worked perfectly well.
    But I attempted to do the same from a servlet running under tomcat.
    I set the appropriate jndi properties in the intial context and added 4 jars specified in the lib directory of the war file.
    But this did not turn out well and tomcat complained me with some servlet init errors.
    Then i searched through the web and found this posting from you:
    http://www.archivesat.com/GlassFish_Enterprise_JavaBeans_Developers/thread1399339.htm
    Then i created a folder called "shared/lib" under TOMCAT_HOME directory in my machine and ran the same example. Wow.....miraculously the application ran well.
    But i found that the "index.jsp" which i configured in the welcome file list does not appear now. But i was able to access the servlet without any problem. And the servlet was able to successfully lookup the ejb deployed in glassfish.
    Then i thought, let me try to access the ejb from a jsf application.
    Then i created a jsf application in netbeans 5.5.1 and tried to access the bean deployed in glassfish.
    (Note: the jsf application runs in tomcat 5.5.17 which is bundled with netbeans)
    OOPSS....
    Tomcat now complains me that it cannot compile the jsp page..
    This is the error i got...
    org.apache.jasper.JasperException: Unable to compile class for JSP
    Generated servlet error:
    C:\Documents and Settings\james\.netbeans\5.5.1\apache-tomcat-5.5.17_base\work\Catalina\localhost\CityExplorer-WebClient1\org\apache\jsp\index_jsp.java:7: org.apache.jsp.index_jsp is not abstract and does not override abstract method getDependants() in org.apache.jasper.runtime.JspSourceDependent
    public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
    ^
    Generated servlet error:
    C:\Documents and Settings\james\.netbeans\5.5.1\apache-tomcat-5.5.17_base\work\Catalina\localhost\CityExplorer-WebClient1\org\apache\jsp\index_jsp.java:12: getDependants() in org.apache.jsp.index_jsp cannot implement getDependants() in org.apache.jasper.runtime.JspSourceDependent; attempting to use incompatible return type
    found : java.lang.Object
    required: java.util.List
    public Object getDependants() {
    ^
    2 errors
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
    Any ideas...
    Can you please help me.
    I've noticed that you were eagerly answering questions related to ejb lookup in many places.
    I feel there is some potential compatability issue between tomcat and glassfish...
    I request you to investigate on this and clarify the community with your response.
    Thanks in advance,
    James Selvakumar

    Thank you guys!
    I've found the answer myself.

  • Issue in accessing EJB from plain java

    Hi,
    I am new to OAS. I am using OAS 10.1.2.
    I want to access EJB which runs inside OAS, through a plain java program which runs from outside the OAS environment (standalone java program).
    I am confused on what to use. RMIInitialContextFactory or ApplicationClientInitialContextFactory for the context in the java program.
    what should be the provide URL ?
    java.naming.provider.url","ormi://hostname:18140/
    is it "ormi" or something else? what is the port number should i use. there are many ports in this OAS. i see that in the console("Ports") link.
    also let me know what should i mention in the EJB xml descriptor.
    Is this lookup to be done by retrieving from jndi?
    pls help.
    Thanks,
    Sukumar
    with this confusion i developed an EJB with the following details
    ejb-jar.xml
    <ejb-ref>
         <ejb-ref-name>ejb/testDetails</ejb-ref-name>
         <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.xxx.xxx.testDetailsHome</home>
    <remote>com.xxx.xxx.testDetails</remote>
         </ejb-ref>
    orion-ejb-jar.xml
    <entity-deployment name="ejb/testDetails" location="ejb/testDetails"
    Client Java program
    public class testDetailsClient
    public static void main(String [] args)
    testDetailsClient testDetailsClient = new testDetailsClient();
    try
    Context context =getInitialContext();
    testDetailsHome testDetailsHome = (testDetailsHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/testDetails"), testDetailsHome.class);
    testDetails testDetails;
    catch(Throwable ex)
    ex.printStackTrace();
    private static Context getInitialContext() throws NamingException
    Hashtable env = new Hashtable();
    env.put("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
    //env.put("java.naming.factory.initial","com.evermind.server.ApplicationClientInitialContextFactory");
    env.put("java.naming.provider.url","ormi://host_name:18140/"); //23791 18140
    env.put(Context.SECURITY_PRINCIPAL, "ias_admin");
    env.put(Context.SECURITY_CREDENTIALS, "abc123");
    InitialContext context = new InitialContext(env);
    return context;
    if i execute this, it says
    javax.naming.NameNotFoundException: java:comp/env/ejb/testDetails not found
    18140 is Application Server Control RMI port.
    if i run the same code with ApplicationClientInitialContextFactory, it throws exception saying
    java.lang.InstantiationException: No location specified and no suitable instance of the type 'com.testdetails.testDetails' found for the ejb-ref ejb/testDetails
         at com.evermind.server.administration.ApplicationResourceFinder.getEJBHome(ApplicationResourceFinder.java:268)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
         at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    javax.naming.NamingException: Error reading application-client descriptor: No location specified and no suitable instance of the type 'com.testdetails.testDetails' found for the ejb-ref ejb/testDetails
         at com.evermind.server.ApplicationClientInitialContextFactory.getInitialContext(ApplicationClientInitialContextFactory.java:161)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
         at javax.naming.InitialContext.init(InitialContext.java:219)
         at javax.naming.InitialContext.<init>(InitialContext.java:195)
         at com.testdetails.testDetailsClient.getInitialContext(testDetailsClient.java:89)
         at com.testdetails.testDetailsClient.main(testDetailsClient.java:20)
    pls help

    Hi,
    you do not have to package your EJB and PAR together! You can deploy them separately and then reference the J2EE Application from your PAR or vice versa to access it.
    For instance you can access the EJB from your PAR as described here:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/42/9ddf20bb211d72e10000000a1553f6/frameset.htm
    Or you can access a Portal application from J2EE like described here:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/42/9ddd0cbb211d72e10000000a1553f6/frameset.htm
    Even if you package your PAR in to the same EAR with your EJB they will result in two different containers on the J2EE Engine and you will have to reference them as described in the link above to access the functionality of one component from the other.
    Best regards,
    Stefan Brauneis

  • Accessing EJBs from a servlet

    Hi everyone,
    I deployed my EJB component in an Oracle 8.1.7 database and I try to access it from a servlet.
    If I run my servlet from JDeveloper 3.2 (Web-to-Go), it all works fine. If I run my servlet from JRun 3.01 or from Tomcat 3.2.1, I get the following exception:
    javax.naming.NoInitialContextException: Need to specify class name in environmen
    t or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    at java.lang.Throwable.fillInStackTrace(Native Method)
    at java.lang.Throwable.fillInStackTrace(Compiled Code)
    at java.lang.Throwable.<init>(Compiled Code)
    at java.lang.Exception.<init>(Compiled Code)
    at javax.naming.NamingException.<init>(NamingException.java:104)
    at javax.naming.NoInitialContextException.<init>(NoInitialContextException.java:58)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:649)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:242)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:279)
    at javax.naming.InitialContext.lookup(InitialContext.java:349)
    at com.cognicase.framework.base.U0003.AbstractORB.getBean(AbstractORB.java:285)
    at com.cognicase.framework.base.U0003.AbstractORB.getBean(Compiled Code)
    at com.cognicase.demo.U2007BL.U2007WP_Users.lookupBean(U2007WP_Users.java:60)
    at com.cognicase.framework.is.U0103.AbstractBeanWrapper.beforeBeanCall(AbstractBeanWrapper.java:121)
    at com.cognicase.demo.U2007BL.U2007WP_Users.valideUser(U2007WP_Users.java:77)
    at com.cognicase.demo.U2000WB.U2000MW_WorkSpace.CallEjb(Compiled Code)
    at com.cognicase.demo.U2000WB.U2000MW_WorkSpace.doValidateLogin(Compiled Code)
    at com.cognicase.demo.U2000WB.U2000MW_WorkSpace.processService(U2000MW_WorkSpace.java:98)
    at Demo_0100_01.service(Demo_0100_01.java:128)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
    at org.apache.tomcat.core.Handler.service(Compiled Code)
    at org.apache.tomcat.core.ServletWrapper.service(Compiled Code)
    at org.apache.tomcat.core.ContextManager.internalService(Compiled Code)
    at org.apache.tomcat.core.ContextManager.service(Compiled Code)
    at org.apache.tomcat.service.connector.Ajp13ConnectionHandler.processConnection(Compiled Code)
    at org.apache.tomcat.service.TcpWorkerThread.runIt(Compiled Code)
    at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(Compiled Code)
    at java.lang.Thread.run(Compiled Code)
    If I add my servlet classes, aurora_client.jar, mts.jar, vbjapp.jar and vbjorb.jar files to the CLASSPATH, it works fine.
    The behavior is the same in JRun and Tomcat.
    I don't like this solution since I have to make the CLASSPATH point to my application classes at the web server level instead of at the application context level.
    Has anyone been able to solve this problem?
    Thanks for your help.
    null

    Yes, I did. Actually, if I run my servlet in JDeveloper (Web-to-Go), it all works fine. I also extracted the code that calls the EJB from the servlet and I tested it in a small Java application, and it also works fine.
    Things stop to work when I deploy my servlet in JRun or in Tomcat.
    It appears that my code is correct, but the environment I try to run it is not, and I can't figure out what's wrong.
    Can anyone help me?
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Sandeep Desai ([email protected]):
    Have you provided the environmental settings in the servlet.
    It should be :
    import oracle.aurora.jndi.sess_iiop.ServiceCtx;
    env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");
    env.put(Context.SECURITY_PRINCIPAL, username);
    env.put(Context.SECURITY_CREDENTIALS, password);
    env.put(Context.SECURITY_AUTHENTICATION, ServiceCtx.NON_SSL_LOGIN);
    InitialContext ctx = new InitialContext(env);
    Object obj = ctx.lookup("test/EJBHome");
    HomeObject home = PortableRemoteObject.narrow(
    obj,"HomeObject.class");
    RemoteObject remote = home.create();
    This should make it work!!
    <HR></BLOCKQUOTE>
    null

  • Access EJB's in JServer from MS COM clients

    We need to access our EJB's from MS COM Clients (written in C++ currently using OCI)
    Any suggestions ?
    Thanks in Advance
    null

    I got the same problem.
    Some posts here suggest you should put weblogic.jar under /common/lib,
    I tried it but it didn't work. I also tried to put it under
    webapps/yourweb/web-inf/lib
    but it didn't work too. At last I had to unpack the weblogic.jar and put
    them under
    webapps/yourweb/web-inf/classes. This at least solved the problem you
    mentioned.
    I got other problem like ClassCastException that might be due to my own
    code.
    Anyway you can try the above approach. And please post your results here
    just let
    others know.
    Thanks.
    "Gary Bartlett" <[email protected]> wrote in message
    news:3ce3fdf1$[email protected]..
    >
    Question -
    Can anyone point me at documentation that will help me understand what jarfiles
    are required to allow access EJB's that are deployed in Weblogic 6.1 froma Servlet
    that is running under Tomcat.
    I am currently getting the following exception:
    javax.naming.NoInitialContextException: Cannot instantiate class:weblogic.jndi.WLInitialContextFactory.
    >
    >
    >
    Root exception is java.lang.ClassNotFoundException:weblogic.jndi.WLInitialContextFactory
    atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
    a:1394)
    >
    >
    Thanks,
    Gary Bartlett

  • Security exception while trying to access EJB from stand alone client

    Hi!, I am trying a sample EJB application to R&D some security related issues. I want to access EJB through a web application as well as a stand-alone client. I have set approriate <method-permission> in EJB deployment descriptor. I am using users.properties/roles.properties file for authentication mechanism. I am using JBoss 3.2.
    - On the web application side I am using BASIC authentication and the servlet is able to access the EJB OK, as long as I am using a login/password that has access to the EJB.
    - Now I am trying to access the EJB using a stand alone Java class. These are the things I have tried till now:
    =>Created a InitialContext with appropriate principal, credentials and tried getting a reference to EJB home interface. That resulted in security exception.
    =>Logged into a LoginContext by using appropriate JBossSX classes and then tried getting a EJB home interface. Again security exception.
    Now I am not sure what to do. I read at some places about client side container but not sure what that is. Does anyone has any ideas to try? Is there any other way I can make a swing application and a web application authenticate to EJB container?
    Also can anyone point me to any documentation that gives some idea about how the security credentials gets propagated from web application/standalone client to EJB container?

    It would be better if you can post your code...and DD that way we can help you better

  • Accessing EJB components from a Remote Client

    Hi,
    When an web component (Servlet/JSP/Java appl.) need to invoke an business method from an EJB, it first lookup for the registered name from the Application server and obtain the remote reference i.e. the EJB Remote interface. To do this, the client must have got the client-jar file containing the stub. Now, if in a distributed environment, my client is in a different machine and need to access the J2EE server across network, what would be the scenereo.
    Is it so, for every EJB the client need to call, it must have got the client-jar file in it's local classpath ? this seems to be not at all feasible.
    Is it so, the client loads the Stub acroos the network while obtaining the remote reference ?
    Please inform me, what actually happens when a client invokes a EJB call deployed in any application server, across the network !!!
    Regards,
    Kaustuv Bhattacharya

    Greetings,
    Hi,
    When an web component (Servlet/JSP/Java appl.) need to
    invoke an business method from an EJB, it first lookup
    for the registered name from the Application server
    and obtain the remote reference i.e. the EJB Remote
    interface. To do this, the client must have got the
    client-jar file containing the stub. Now, if in aFor web components running in the same application context, the client-jar is not required - the server-jar also contains the necessary stubs. However, for application clients, the client-jar is required...
    distributed environment, my client is in a different
    machine and need to access the J2EE server across
    network, what would be the scenereo.The client-jar must be distributed with your application, or accessible from a shared network resource, either way...
    Is it so, for every EJB the client need to call, it
    must have got the client-jar file in it's local
    classpath? this seems to be not at all feasible.Yes, the client-jar must be included in the client's classpath... Why isn't it feasible? The client-jar(s) can easily be distributed with your application. The necessity to include them in the application's CLASSPATH does not necessitate their inclusion into the client-machine's CLASSPATH. Simply include the jar(s) as part of the JVM's -cp option.
    Is it so, the client loads the Stub acroos the network
    while obtaining the remote reference?A copy of the remote interface's stub file is included for casting purposes. However, a copy of the stub containing the correct communication parameters (such as TCP/IP port number, reference ID, etc. per vendor implementation...), for the remote reference does get downloaded.
    Please inform me, what actually happens when a client
    invokes a EJB call deployed in any application server,
    across the network !!!The exact details are vendor specific and depends on the actual protocol in use by the stub-layer. However, the general behaviour is in-line with RMI(-IIOP) communication.
    Regards,
    Kaustuv BhattacharyaRegards,
    Tony "Vee Schade" Cook

  • Access EJB from Servlet that in different archive?

    <font class="mediumtxt">package kyro.ejb.session;
    import javax.ejb.*;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    @Stateless(name="StandAlone")
    @Remote(StandAlone.class)
    public class StandAloneBean
    implements StandAlone, StandAloneLocal
    public StandAloneBean() {
    public String sayHello() {     
    return "sayHello";
    I want to access ejb from servlet that .war and .jar not in single .ear. I want to try that just with annotation not xml descriptor cause is easy to understand for me. I use Glassfish. But i can't lookup that ejb. How can i lookup that ejb with jndi? Can't you give me example of servlet to access that? I not use JNDI.properties, are that caused i can't access my ejb? I just thing .war and.jar in one server, are i have to used JNDI.properties. can you explain how to use JNDI.properties in servlet or separate file?
    </font>

    But i can't lookup that ejb. How are you trying and what exception is occurring?
    How can i lookup that ejb with jndi? [https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html|https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html]
    m

  • How to access ejb jar in ear package from other war web package?

    How to access ejb in jar packed in ear package from other war web package?

    Typically you would just look the EJB Home up in JNDI. If you're
    looking for example code, the medrec example in WLS 8.1 or petstore has
    plenty of webapps calling EJBs.
    -- Rob
    CottonXu wrote:
    How to access ejb in jar packed in ear package from other war web package?

  • Accessing WebLogic EJBs from Tomcat 3.2

    Has anyone out there tried to access EJBs in a WebLogic 5.10 SP6 app
    server from a servlet in Tomcat 3.2? I'm operating under Win2K. When I
    try to create the initial naming context, the following exception is
    thrown:
    java.lang.NoClassDefFoundError: COM/rsa/jsafe/JSAFE_InvalidUseException
    at weblogic.security.WLMessageDigest.getInstance
    (WLMessageDigest.java:52)
    at weblogic.security.MD5RandomBitsSource.seed
    (MD5RandomBitsSource.java:56)
    at weblogic.rjvm.LocalRJVM.<init>(LocalRJVM.java:108)
    at weblogic.rjvm.LocalRJVM.getLocalRJVM(LocalRJVM.java:85)
    at weblogic.rjvm.RJVMManager.getLocalRJVM(RJVMManager.java:89)
    at weblogic.rjvm.RJVMManager.initialize(RJVMManager.java:78)
    at weblogic.kernel.Kernel.ensureInitialized(Kernel.java:137)
    at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:182)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(
    WLInitialContextFactoryDelegate.java, Compiled Code)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(
    WLInitialContextFactoryDelegate.java:148)
    at weblogic.jndi.WLInitialContextFactory.getInitialContext(
    WLInitialContextFactory.java:123)
    at javax.naming.spi.NamingManager.getInitialContext(
    NamingManager.java:771)
    at javax.naming.InitialContext.getDefaultInitCtx(
    InitialContext.java:169)
    at javax.naming.InitialContext.<init>(InitialContext.java:146)
    From poking around in the WebLogic server directories, in appears that
    the RSA-related classes are implemented as native methods in jsafe.dll.
    Should I be trying to install this dll in Tomcat somehow? If so, where
    should I be looking for information on how to do this?
    -- Erik

    "Erik Horstkotte" <[email protected]> wrote in message news:[email protected]...
    Has anyone out there tried to access EJBs in a WebLogic 5.10 SP6 app
    server from a servlet in Tomcat 3.2? I'm operating under Win2K. When I
    try to create the initial naming context, the following exception is
    thrown:[Sigh. I know it's bad form to follow up your own posts, but...]
    Ignore the exact problem description above. I wasn't including
    \weblogic\classes and \weblogic\lib\weblogicaux.jar in Tomcat's
    classpath. Now the same code connects to the app server:
    Connected successfully using http to JIMBO/172.16.1.4:7001
    But immediately after connecting, I get a new exception:
    java.lang.NoSuchMethodError: java.lang.NoSuchMethodException:
    getNameInNamespace
    at weblogic.jndi.toolkit.BasicWLContext_WLStub.ensureInitialized
    (BasicWLContext_WLStub.java:127)
    at weblogic.jndi.toolkit.BasicWLContext_WLStub.<init>
    (BasicWLContext_WLStub.java:146)
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at weblogic.common.internal.ClassTableEntry.newInstance
    (ClassTableEntry.java:86)
    at weblogic.common.internal.WLObjectInputStreamBase.readLeftover
    (WLObjectInputStreamBase.java:248)
    at weblogic.common.internal.WLObjectInputStreamBase
    .readObjectBody (WLObjectInputStreamBase.java:202)
    at weblogic.common.internal.WLObjectInputStreamBase.readObject
    (WLObjectInputStreamBase.java:949)
    at weblogic.common.internal.WLObjectInputStreamBase.readObjectWL
    (WLObjectInputStreamBase.java:308)
    at weblogic.jndi.toolkit.WLContextStub.readExternal
    (WLContextStub.java:79)
    at weblogic.common.internal.WLObjectInputStreamBase
    .readPublicSerializable(WLObjectInputStreamBase.java:269)
    at weblogic.common.internal.WLObjectInputStreamBase.readLeftover
    (WLObjectInputStreamBase.java:254)
    at weblogic.common.internal.WLObjectInputStreamBase.readObjectBody
    (WLObjectInputStreamBase.java:202)
    at weblogic.common.internal.WLObjectInputStreamBase.readObject
    (WLObjectInputStreamBase.java:949)
    at weblogic.common.internal.WLObjectInputStreamBase.readObjectWL
    (WLObjectInputStreamBase.java:308)
    at weblogic.rmi.extensions.AbstractInputStream2.readObject
    (AbstractInputStream2.java:25)
    at weblogic.jndi.internal.RemoteContextFactoryImpl_WLStub
    .getContext(RemoteContextFactoryImpl_WLStub.java:99)
    at weblogic.jndi.WLInitialContextFactoryDelegate
    .newRemoteContext(WLInitialContextFactoryDelegate.java:316)
    at weblogic.jndi.WLInitialContextFactoryDelegate.newContext
    (WLInitialContextFactoryDelegate.java:242)
    at weblogic.jndi.WLInitialContextFactoryDelegate
    .getInitialContext(WLInitialContextFactoryDelegate.java, Compiled
    Code)
    at weblogic.jndi.WLInitialContextFactoryDelegate
    .getInitialContext(WLInitialContextFactoryDelegate.java:148)
    at weblogic.jndi.WLInitialContextFactory.getInitialContext
    (WLInitialContextFactory.java:123)
    at javax.naming.spi.NamingManager.getInitialContext
    (NamingManager.java:771)
    at javax.naming.InitialContext.getDefaultInitCtx
    (InitialContext.java:169)
    at javax.naming.InitialContext.<init>(InitialContext.java:146)
    getNameInNamespace isn't a method in any of my EJB's (that I wrote, at
    least - it could be generated by weblogic.ejbc), and it's not a method
    I'm calling directly. Presumably, something in the remote session bean
    creation is calling this method (of what class?)
    Am still I missing classpath entries in Tomcat? If so, which ones?
    If you've successfully referenced EJBs in a WebLogic Server from a
    Tomcat servlet, what setup changes did you have to make to Tomcat and
    WLS to make it fly?
    -- Erik

Maybe you are looking for