Servlet accessing an ejb in separate jar

Don't know if this is possible??
I have deployed interest.jar ejb...client is working..
I'm trying to access ejb/interest through the interestservlet.war.
The problem I'm having is setting up the web.xml & jboss-web.xml
to reference the deployeed interest ejb on the jboss server. The
servlet works fine if it's in the same interest.ear package.
The reason for this is to deployee ejb.jar once and change the servlet look for each different install.

actually, it's pretty easy. It took me a while because I couldn't find documentation on web.xml configuration. Everything is moving along fine.

Similar Messages

  • Local references and EJBs in separate jars

    Hi
    I have trouble in getting local references when the EJBs are built in separate jar files. I am using the <ejb-link> in the <local-ejb-ref>. But I could not get reference to the EJB's local reference.
    Please let me know if there is any documentation that tells about getting local references and having the EJBs in separate jar files.
    Thanks

    Greetings,
    Hi
    I have trouble in getting local references when the
    EJBs are built in separate jar files. I am using theThere are a number of reasons why this may be happening and without more specific information it is difficult to say which you are encountering... In any case, the fact that your beans are in separate jars is not, by itself, the issue. It is worth noting, however, that Local references may only be used when both components (referencer and referencee) are co-located within the same VM instance and perhaps this little fact may shed some light on your problem??
    <ejb-link> in the <local-ejb-ref>. But I could not get<ejb-link> should point to the actual JNDI binding name, sans root nomenclature (java:comp/env/), but with full sub-context (ejb/myapp/.../MyLocalBean), of the referenced bean.
    reference to the EJB's local reference.Perhaps it goes without saying (but just to be sure :)... of course, your referenced bean must actually have Local interfaces associated with it.
    Please let me know if there is any documentation
    that tells about getting local references and having
    the EJBs in separate jar files.Both the J2EE tutorial and the EJB 2.0 spec. have the relevant information. :) However, I've already listed the requirements above: supplied local interfaces, co-located components, and correct link reference.
    I hope this helps.
    ThanksRegards,
    Tony "Vee Schade" Cook

  • Problem deploying related EJBs in separate JARs

    I have 2 entity EJBs, User and Address, in separate JAR files. The User bean
    has business methods to get and set its related address as follows:
    void setAddressPK(AddressPK newAddress) throws java.rmi.RemoteException;
    AddressPK getAddressPK() java.rmi.RemoteException;
    When I try and load User.jar in the EJB Deployment tool it complains that it
    can't find the AddressPK class. However, I can get round this by explicitly
    adding Address.jar to the classpath.
    When I actually deploy and use the User bean I do NOT need Address.jar on
    the classpath, although I do get warnings during deployment.
    So my question is how do I package and deploy related EJBs. I don't want to
    have to have all my EJBs in the same JAR, nor do I want to have the same
    classes in more than one JAR. Is what I'm doing correct - am I supposed to
    have Address.jar on the classpath? And what about an utility classes that
    are shared between EJBs - where do I put those?
    Thanks in advance,
    Steve.

    I resolved the problem be making sure that my deployment
    jars don't appear in my servlet classpath....
    Jason
    Jeff Wang <[email protected]> wrote in message news:[email protected]...
    In general, if two beans are related (i.e. you can not compile one
    without the other being on the classpath) and they are both deployed
    they should be in the same jar file. If you do not deploy one of them,
    then the undeployed bean can be in the weblogic.class.path with no
    problem.
    I suspect that you are getting a ClassCastException because you have the
    deployment jars in your weblogic.class.path (or java classpath.) Remove
    them, and see if the error is resolved.
    Jeff Wang
    WLCS 2.0 Software Engineer
    Jason Rosenberg wrote:
    Does the same apply for beans of different types? In other words, do
    I need to have an entity bean and a session bean which wraps the entity
    bean in the same jar file?
    I am having a problem accessing a session bean from a JSP servlet. I get
    the dreaded ClassCastException. I don't get this problem, however, if
    I access the session bean directly from a stand-alone java client. It's
    only when I access the session bean via JSP....
    Any ideas?
    Jason
    Jeff Wang <[email protected]> wrote in message news:[email protected]...
    What you should have in the .jar files are:
    the home (say it is called <bean>home.class)
    the remote (say it is called <bean>.class)
    the impl (say it is called <bean>impl.class)
    These are the only ones that should be in the .jar file. (not even the
    PK should be there, for an entity bean.) All the support classes should
    be in weblogic.class.path If you have cross jar dependencies,
    unfortunately, you will have to specify the jar in the
    weblogic.class.path... However, this is not a good idea, as you will
    have 2 class files in memory. At the very least, you will not be able
    to do hot deploy. Depending on your code, you'll have a "class cast
    exception <bean> can not be casted to an object of <bean>" (Something
    like that, I don't have the exact error in front of me.) In your
    example it is probably better to put User and Address in the same jar.
    Jeff Wang
    WLCS 2.0 Software Engineer
    Steve Ward wrote:
    I have 2 entity EJBs, User and Address, in separate JAR files. The User bean
    has business methods to get and set its related address as follows:
    void setAddressPK(AddressPK newAddress) throws java.rmi.RemoteException;
    AddressPK getAddressPK() java.rmi.RemoteException;
    When I try and load User.jar in the EJB Deployment tool it complains that it
    can't find the AddressPK class. However, I can get round this by explicitly
    adding Address.jar to the classpath.
    When I actually deploy and use the User bean I do NOT need Address.jar on
    the classpath, although I do get warnings during deployment.
    So my question is how do I package and deploy related EJBs. I don't want to
    have to have all my EJBs in the same JAR, nor do I want to have the same
    classes in more than one JAR. Is what I'm doing correct - am I supposed to
    have Address.jar on the classpath? And what about an utility classes that
    are shared between EJBs - where do I put those?
    Thanks in advance,
    Steve.

  • Two EJB's, separate JARS?

    Hi,
    I have a MDB, consuming messages from a Q, a Java Bean and a Stateless Session Bean.
    The MDB has a message sent to it, consumes the message, calls the Bean and the bean then passes the Remote interface of the EJB back to the MDB.
    I have packaged and deployed this like so:
    first jar: MDB and Java Bean;
    second jar: Session EJB.
    I call the session ejb from the Bean like so:
    Context ctx = getInitialContext();
    Object objRef = ctx.lookup("java:comp/env/IntellectSessionRemote");I get this error, caught from the NamingException thrown in the above code:
    Javax.Naming.NameNotFound Exception: Unable to resolve comp/env/IntellectSessionRemote/ Resolved: comp/env Unresolved: IntellectSessionRemote ; remaining name ' ' in ejb
    Any ideas/help??/
    I am deploying on Weblogic 6.1, in development mode.
    Cheers
    T

    Hi again,
    I am confused still about a couple of things:
    1) Should I be deploying the EJB's in seperate JAR's?
    2) It is my Bean class, not MDB, that is doing the
    Object objRef = ctx.lookup("java:comp/env/ejb/IntellectSessionRemote");lookup, therefore why do i put the reference to the jndi name of the Session EJB in the deplotment descriptor of the MDB?
    I tried putting the ejb-ref tag in the ejb-jar.xml file and now get the following error when the server starts:
    In ejb-jar.xml the EJB 'consumer' contains an invalid eb-link in ejb-ref 'ejb/IntellectSession'. No ejb with ejb-name 'IntellectSession' could be found.Any ideas on this one????
    Cheers
    T

  • IllegalArgumentException while accessing an EJB with a servlet client

    Dear All,
    Hey,
    I am facing some problems while accessing a deployed stateless ejb. Following is how my application is being accessed:
    WEBAPP CLIENT
         caller.html ------->> DisplayServletClient --------->> DisplayServlet
    (Simple HTML Page)          (Servlet which performs lookup)     (The actual bean)
    CONSOLE CLIENT
    DisplayConsoleClient --------->> DisplayServlet
    (Simple Console Client)     (The actual bean)
    I am using the J2EE reference implementation, the ejb bean is successfully deployed. The console client successfully, access the ejb. But when I try to access the ejb using the webapp client, I get the following exception:
    ======= EXCEPTION ENCOUNTERED ============
    Application DisplayApp deployed.
    Servlet Entered
    HTML Content Type Set
    PrintWriter Object Created
    Context Object Created
    Exception in Servlet Client Code: java.lang.IllegalArgumentException: Unknown co
    mponent type
    java.lang.IllegalArgumentException: Unknown component type
    at com.sun.enterprise.naming.NamingManagerImpl.getComponentType(NamingMa
    nagerImpl.java:670)
    at com.sun.enterprise.naming.NamingManagerImpl.getMangledIdName(NamingMa
    nagerImpl.java:708)
    at com.sun.enterprise.naming.NamingManagerImpl.getComponentIdInternal(Na
    mingManagerImpl.java:680)
    at com.sun.enterprise.naming.NamingManagerImpl.getComponentId(NamingMana
    gerImpl.java:313)
    at com.sun.enterprise.naming.java.javaURLContext.getComponentContext(jav
    aURLContext.java:397)
    at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.j
    ava:51)
    at javax.naming.InitialContext.lookup(InitialContext.java:350)
    at DisplayServletClient.service(DisplayServletClient.java:27)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServl
    et.java:428)
    at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java
    :180)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationF
    ilterChain.java:197)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilt
    erChain.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:172)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:215)
    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.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
    2314)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:164)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.ja
    va:368)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:163)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
    r.java:995)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
    va:1088)
    at java.lang.Thread.run(Thread.java:484)
    ======== EXCEPTION END ===========
    Tweaking with the servlet client code, I have discovered that it is failing to perform a correct lookup. Can anybody suggest any remedy? My Source code is below:
    =========================================================
    ============ Remote Interface START ==============
    // The DisplayApp Remote Interface File
    import javax.ejb.*;
    import java.rmi.*;
    public interface Display extends EJBObject
         public String display() throws RemoteException;
    ============ Remote Interface END ==============
    ============ Home Interface START ==============
    // The DisplayApp Home Interface File
    import javax.ejb.*;
    import java.rmi.*;
    public interface DisplayHome extends EJBHome
         public Display create() throws RemoteException, CreateException;
    ============ Home Interface END ==============
    ============ Bean Class START ==============
    // The DisplayApp Bean Class File
    import javax.ejb.*;
    import java.rmi.*;
    public class DisplayBean implements SessionBean
         public String display() throws RemoteException
              System.out.println("The Server Side Response");
              return "Hello, Me a New Friend";
         public void ejbCreate(){}
         public void ejbRemove(){}
         public void ejbActivate(){}
         public void ejbPassivate(){}
         public void setSessionContext(SessionContext ctx){}
    ============ Bean Class END ==============
    ========== Console Client Class START ======
    // The Display Console Client Class File
    import javax.ejb.*;
    import javax.rmi.*;
    import javax.naming.*;
    import Display;
    import DisplayHome;
    public class DisplayConsoleClient
         public DisplayConsoleClient()
              try
                   Context initial=new InitialContext();
                   Object objref=initial.lookup("java:comp/env/DisplayJNDI");
                   DisplayHome home=(DisplayHome)PortableRemoteObject.narrow(objref, DisplayHome.class);
                   Display ref=home.create();
                   System.out.println("Client Side: "+ref.display());
                   ref.remove();
              catch(Exception ex)
                   System.out.println("Exception in Client Code: "+ex);
                   ex.printStackTrace();
         public static void main(String args[])
              new DisplayConsoleClient();
    ========== Console Client Class END ======
    ========== Servlet Client Class START ======
    // The DisplayApp Servlet Client Class File
    import javax.ejb.*;
    import javax.rmi.*;
    import javax.naming.*;
    import Display;
    import DisplayHome;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    public class DisplayServletClient extends HttpServlet
         private PrintWriter out;
         public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
              try
              System.out.println("Servlet Entered");
              response.setContentType("text/html");
              System.out.println("HTML Content Type Set");
              out=response.getWriter();
              System.out.println("PrintWriter Object Created");
              Context initial=new InitialContext();
              System.out.println("Context Object Created");
              Object objref=initial.lookup("java:comp/env/ejb/DisplayWEBJNDI");
              System.out.println("Lookup Done Successfully");
              DisplayHome home=(DisplayHome)PortableRemoteObject.narrow(objref, DisplayHome.class);
              System.out.println("Home Object Created");
              Display ref=home.create();
              System.out.println("Remote Object Created");
              out.println("<html><title>The Results Page</title>");
              out.println("<body<hr>");
              out.println("<h1>The Client Side Response is: ");
              out.println(ref.display());
              out.println("</h1>");
              out.println("<hr>");
              out.println("</body></html>");
              System.out.println("Responses Done");
              out.flush();
              System.out.println("Output Stream Flushed");
              ref.remove();
              System.out.println("Remote Object Removed");
              catch(Exception ex)
                   System.out.println("Exception in Servlet Client Code: "+ex);
                   ex.printStackTrace();
    ========== Servlet Client Class END ======
    ========== Calling HTML File START ======
    <html>
    <body>
    <hr>
    <form method="get" action="/servlet/DisplayServletClient">
    <input type="submit" name="submit" value="Call Now!">
    </form>
    <hr>
    </body>
    </html>
    ========== Calling HTML File END ======
    =========================================================
    Since, the descriptors were automatically generated, I have not included them here. Also, I did not build the war, jar, ear files myself, they were automatically generated by the deploytool.
    Please help!!
    Thanks & Bye,
    Tualha Khan

    Hey,
    This was the latest code snippet which I used in the Servlet file.
    ========================
    try
              System.out.println("Servlet Entered");
              response.setContentType("text/html");
              System.out.println("HTML Content Type Set");
              out=response.getWriter();
              System.out.println("PrintWriter Object Created");
              InitialContext initial=new InitialContext();
              System.out.println("Context Object Created");
              Object objref=initial.lookup("DisplayWEBJNDI");
              System.out.println("Lookup Done Successfully");
              DisplayHome home=(DisplayHome)PortableRemoteObject.narrow(objref, DisplayHome.class);
              System.out.println("Home Object Created");
              Display ref=home.create();
              System.out.println("Remote Object Created");
              out.println("<html><title>The Results Page</title>");
              out.println("<body<hr>");
              out.println("<h1>The Client Side Response is: ");
              out.println(ref.display());
              out.println("</h1>");
              out.println("<hr>");
              out.println("</body></html>");
              System.out.println("Responses Done");
              out.flush();
              System.out.println("Output Stream Flushed");
              ref.remove();
              System.out.println("Remote Object Removed");
    ========================
    The Response was
    ========================
    Servlet Entered
    HTML Content Type Set
    PrintWriter Object Created
    Context Object Created
    Exception in Servlet Client Code: javax.naming.NameNotFoundException: DisplayWEB
    JNDI not found
    javax.naming.NameNotFoundException: DisplayWEBJNDI not found
    <<no stack trace available>>
    ========================
    So what else should I do???
    Thanks & Waiting,
    Tualha Khan

  • How to deploy 2 EJB's in separate jars

    Hi,
    I have successfully deployed 2 session ejb's in the same jar file, i.e. with one ejb-jar.xml and one weblog-ejb-jar.xml. And get get the ejb's to communicate with each other.
    Now I want to be able to compile and deploy the 2 ejb's in separate jar files as part of an ear file.
    My method so far is this:
    I have split the ejb-jar.xml file into two, for each ejb, and also the weblogic-ejb-jar.xml file into two for each ejb.
    I then compiled the ejb source files and packaged each ejb up with its respective deployment descriptors into two separate .jar files.
    I then want to run weblogics ejbc on each .jar file in turn so that the resultant .jar files (with newly created stubs/skels) can be packaged into an .ear to be easily deployed into weblogic.
    I try and run the ejbc command on the first of the .jar files and i get the error:
    ERROR: Error from ejbc:
    In ejb-jar.xml, the EJB 'SessClient' contains an invalid ejb-link in ejb
    -ref 'ejb/SessLogHome'. No EJB with ejb-name 'IntellectStateless.jar#SessLog' co
    uld be found.
    ERROR: ejbc found errors
    My ejb-jar.xml file for this ejb is:
    <ejb-jar>
      <enterprise-beans>
        <session>
          <ejb-name>SessClient</ejb-name>
          <home>intellectsession.sessiontwo.SessClientEntHome</home>
          <remote>intellectsession.sessiontwo.SessClientEnt</remote>
          <ejb-class>intellectsession.sessiontwo.SessClientEntBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
          <ejb-ref>
            <ejb-ref-name>ejb/SessLogHome</ejb-ref-name>
            <ejb-ref-type>Session</ejb-ref-type>
            <home>intellectsession.stateless.SessLogHome</home>
            <remote>intellectsession.stateless.SessLog</remote>
            <ejb-link>IntellectStateless.jar#SessLog</ejb-link>
          </ejb-ref>
        </session>
      </enterprise-beans>
      <assembly-descriptor>
        <container-transaction>
          <method>
         <ejb-name>SessClient</ejb-name>
         <method-name>*</method-name>
          </method>
          <trans-attribute>Required</trans-attribute>
        </container-transaction>
      </assembly-descriptor>
    </ejb-jar>and both of my .jar files are in the same directory when I run the ejbc command.
    I'm sure this can be done but I just think i'm not doing it in the right order maybe??
    Anyway pointers will be gr8ly appreciated.
    Cheers
    T

    Okay here is the solution to how to achieve the problem I encountered above:
    I am compiling my ejb.jar files using the weblogic.ejbc compiler, obviously I am deploying on weblogic here.
    This section:
    <ejb-ref>
      <ejb-ref-name>ejb/SessLogHome</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
    <home>intellectsession.stateless.SessLogHome</home>
      <remote>intellectsession.stateless.SessLog</remote>
      <ejb-link>IntellectStateless.jar#SessLog</ejb-link>
    </ejb-ref>must have JUST the <ejb-link/> tag removed from the ejb-jar.xml file. And then the weblogic-ejb-jar.xml file MUST look like this:
    <weblogic-ejb-jar>
        <weblogic-enterprise-bean>
            <ejb-name>SessClient</ejb-name>
            <reference-descriptor>
              <ejb-reference-description>
                <ejb-ref-name>ejb/SessLogHome</ejb-ref-name>
                <jndi-name>SessLog</jndi-name>
              </ejb-reference-description>
            </reference-descriptor>
            <jndi-name>SessClient</jndi-name>
        </weblogic-enterprise-bean>
    </weblogic-ejb-jar>Note the <refererence-descriptor> tag as the important part.
    After these changes, the 2 ejb.jar files can be compiled using the weblogic.ejbc tool, thus supplying the stubs/skels, and then the resultant two ejb.jar files can be added to the EAR file and deployed to weblogic.
    Result: 2 ejb's in separate jars, in one EAR file, talking to each other.
    T

  • We want to deploy Servlet/JSP in JServ and call the EJB's deployed in iPlanet App Server 6.0 SP2. How do we make the getInitialContext Call be able to access the EJB's.

    Additionally what configurations do we need to make sure we have on JServ (Third party Servlet container) to make sure that the iPlanet EJB's can be accessed.

    Let me preface my instructions with the comment that this isn't a good idea. Although the J2EE specification allows you seperate your web container from your EJB container, in practical deployments it is a bad idea. The overhead of doing RMI/IIOP calls to an external container as opposed to making inter-JVM calls means that you can expect roughly an order of magnitude less performance than if you colocate your web and EJB containers. (This is why all EJB containers are also web containers, or at least have the provision to install themselves in the same JVM as a web container.)
    That said, if you do not have the option to move the servlets to iAS, you can access EJB's in iAS from JServ the same way that you would from any remote client. Take a look at the following information for more detail:
    Chapter 9 of the developer's guide ( this shows you what changes you need to make to the remote JVM (at JServ) and in the EJB's that you are exposing).
    The RMI/IIOP sample application. This gives you an example of how to access EJB's from outside the container.
    (To answer your direct question, the following code will get the initial context. But if you don't take all of the other configuration steps, this code won't work:
    env.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
    env.put("java.naming.provider.url", "iiop://" + host + ":"+port);
    Context initial = new InitialContext(env);
    I'd also suggest that you approach the task with the following approach. (Assuming that I haven't managed to convince you that this is a really bad idea.)
    1. Get your EJB's working on iAS. Test them with servlet harnesses running on iAS.
    2. Get your servlets working on JServ, if they aren't already.
    3. Create a simple standalone Java application as a test harness for EJB's. Follow the RMI/IIOP instructions until you get this test harness working.
    4. Create a simple servlet test harness in JServ to access your EJb's. Follow the JVM setup instrucitons until you get this working.
    5. Actually integrate the EJB's with your production application.
    I say this because there are about five trillion things that can go wrong in this process. Although the troubleshooting steps in the docs are helpful, I find that it helps to get one thing working at a time. It's very frustrating to spend a day trying to resolve JNDI issues only to find out that you have your CXS configured improperly.

  • How can I access EJB  through executable jar file?

    Hello buddies!!
    I wonder if anyone could give me an explanation of how accessing EJB through executable jar file?Thanks!!

    Hi there,
    You'll need to install the J2EE SDK on the client and include the <j2ee install dir>\lib\j2ee.jar file in your CLASSPATH along with the Client Jar file that was generated by the deploytool when you deployed the application.
    In your client code the Context properties are as follows:
    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
    p.put(Context.PROVIDER_URL, "iiop://hostname:portnumber");
    Context cntx = new InitialContext(p).Hope this helps
    Amanda
    Developer Technical Support
    Sun Microsystems
    http://www.sun.com/developers

  • How to access an EJB from a web application deployed in the same server

    Hey All,
    I deployed an EJB named EventServerBean to Sun Application Server 9.0, and put the client side jar file (named eventserver.jar which is generated by Sun Application Server) to C:\Sun\AppServer\lib. Now, I have a web application which is a simple jave file -- lookup EventServer EJB and invoke a remote method in this EJB. However, the web application always throws an exception "java.lang.NoClassDefFoundError: eventserver/EventServerRemoteHome"
    Here is my java class that access the ejb:
    public class Post_Event {
        public HashMap<String, String> getEventInfo(String event_name, String site) {
            System.out.println("Post_Event, the class path: " + System.getProperty("java.class.path"));       
            System.out.println("Post_Event, user.dir: " + System.getProperty("user.dir"));
            System.out.println("Post_Event, java.library.path: " + System.getProperty("java.library.path"));
            HashMap<String, String> result = null;
            EventServerRemote remote = null;
            StringTokenizer st, st2;
            // here get the event information from host
            try {
                String lookupStr = "corbaname:iiop:" + site + ":3700#ejb/EventServerBean";
                InitialContext initialContext = new InitialContext();
                EventServerRemoteHome remoteHome = (EventServerRemoteHome) javax.rmi.PortableRemoteObject.narrow(initialContext.lookup(lookupStr), EventServerRemoteHome.class);
                if (remoteHome != null) {
                    remote = remoteHome.create();
            } catch (javax.naming.NamingException ne) {
                ne.printStackTrace();
                return null;
            } catch (javax.ejb.CreateException ce) {
                ce.printStackTrace();
                return null;
            } catch (java.rmi.RemoteException re) {
                re.printStackTrace();
                return null;
            } catch (java.io.IOException ioe) {
                ioe.printStackTrace();
                return null;
            System.out.println("look up remote event server successfully.");
         result = remote.getEvent(event_name);
            return result;
        } I output the class path in this java file, and the class path DOES include the path C:\Sun\AppServer\lib where eventserver\EventServerRemoteHome.class is.
    Does anyone know why it happens? Why a java class can't find a class that is in its class path?
    appreciate any help!

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Wael Abbas ([email protected]):
    Thank you for your great topic.
    I think you need to copy the snippet code and past it to every application, applet, servlet or JSP every time you need to use your EJB.
    Its better to include this snippet code in a simple JavaBean and use this bean as a bridge to your EJB, you may include a connect method in your JavaBean or but the connection code in the constructor and include a setters, getters and other methods to encapsulate your EJB methods.
    You can use your JavaBean in any application, applet, servlet or JSP just create an object form it and call its methods.
    Its just an idea
    I hope it will be useful.
    <HR></BLOCKQUOTE>
    null

  • Using service Locator pattern to dynamically access remote EJBs

    Hi All,
    Please help to guide me how I can use a service locator to retrieve a remote object (residing on another application but on same domain) .
    I do not want to use Dependency Injection since I want to dynamically discover them ( there are many implementations of same interface (POJO)). Each EJB implementation implements its own remote/local interface that extends this global POJO interface.
    I have two J2ee-Applications on same domain. J2EE-Application 1 has an EJB module (EJB Module 1) that intends to access an EJB Module (EJB Module 2) in J2EE-Application 2. Following observations:
    1. Dependency Injection fails if (include the EJB Module 2 jar in J2EE-Application 1). Reason App Server complains the EJB has been deployed (Deployment fails)
    2. Dependency Injection works if (exclude the EJB Module 2 jar in J2EE-Application 1) and include the Remote Interface in EJB Module 1(J2EE-Application 1).Positive Observation (Deployment success and DI also success)
    3.Using Service Locator to retrieve the remote object if (exclude the EJB Module 2 jar in J2EE-Application 1) and include the Remote Interface in EJB Module 1(J2EE-Application 1). Negative and Positive Observation.
    Positive Observation: Using dependency injection I can still retrieve the Remote Object
    Another Positive: The Service Locator remote lookup to another Bean in same Application but different EJB Module is successful.
    Negative Observation:
    The Service Locator lookup to this same remote object with Successful Dependency Injection fails (An Ejb in a different application).
    Can't retrieve the Remote Object with Service Locator. Message from Server:.
    NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial.
    Thanks in advance

    "I do not want to use Dependency Injection since I want to dynamically discover them ( there are many implementations of same interface (POJO))"
    If you're calling ejbs from other ejbs or servlets, the same could probably be acomplished by using dependency injection (@EJB) in a number of instance variables typed with different remote/local interfaces or even with different beanName attributes (for when more than one bean implements the same managed interface in the same app - not sure how it works outside the same jee app...) , and dinamically selecting one of them; or encapsulating those injected variables into a stateless ejb as your service locator to make them accessible from POJOs too (which, due to concurrent acess, wouldn't work for statefull ejbs references...).
    Anyway, using the jndi lookup service locator pattern seems ok in this case.
    What doesn't seem ok, given the nature of the error for the negative observation - jndi context initialization - is that
    Another Positive: The Service Locator remote lookup to another Bean in same Application but different EJB Module is successful.
    Can you check your code and reconfirm that you're using the same context initialization code for both the positive and negative observations ?

  • Accessing remove EJBs while debugging using the Embedded Application Server

    I'm trying to configure to debug a multi-tier application (servlets + EJBs) where a servlet accesses EJBs set up on a second OC4J application server. I've set up rmi.xml in the embedded application server to reference my second application server by adding the line.
    <server host="127.0.0.1" username="admin" port="23791" password="password"/>
    When I run the embedded application server it seems to hang, with the stack in
    the following state:
    OC4J main()
    OC4J launchOC4JCommandLine()
    ApplicationServer launchCommandLine()
    Thread join()
    Thread join(0)
    Object wait(0)
    The following exception is generated on the second application server
    C:\Program Files\Oracle\JDeveloper9i\j2ee\home>java -jar oc4j.jar
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    java.lang.NullPointerException
    java.lang.ClassLoader com.evermind.server.rmi.RMIInputStream.getClassLoa
    der()
    java.lang.Class com.evermind.server.rmi.RMIInputStream.resolveClass(java
    .io.ObjectStreamClass)
    java.io.ObjectStreamClass java.io.ObjectInputStream.inputClassDescriptor
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    int java.io.ObjectInputStream.inputObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    void com.evermind.server.rmi.RMIConnection.handleBindObject()
    void com.evermind.server.rmi.RMIConnection.run()
    void com.evermind.util.ThreadPoolThread.run()
    Has anyone got any ideas what is happening here and how I can fix it?
    Thanks,
    Mark.

    This is an OC4J question. Try posting your message to the Products > Application Server > J2EE forum. Someone there should be able to answer your question.

  • Accessing remote EJBs while debugging using the Embedded Application Server

    I'm trying to configure to debug a multi-tier application (servlets + EJBs) where a servlet accesses EJBs set up on a second OC4J application server. I've set up rmi.xml in the embedded application server to reference my second application server by adding the line.
    <server host="127.0.0.1" username="admin" port="23791" password="password"/>
    When I run the embedded application server it seems to hang, with the stack in
    the following state:
    OC4J main()
    OC4J launchOC4JCommandLine()
    ApplicationServer launchCommandLine()
    Thread join()
    Thread join(0)
    Object wait(0)
    The following exception is generated on the second application server
    C:\Program Files\Oracle\JDeveloper9i\j2ee\home>java -jar oc4j.jar
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    java.lang.NullPointerException
    java.lang.ClassLoader com.evermind.server.rmi.RMIInputStream.getClassLoa
    der()
    java.lang.Class com.evermind.server.rmi.RMIInputStream.resolveClass(java
    .io.ObjectStreamClass)
    java.io.ObjectStreamClass java.io.ObjectInputStream.inputClassDescriptor
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    int java.io.ObjectInputStream.inputObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    void com.evermind.server.rmi.RMIConnection.handleBindObject()
    void com.evermind.server.rmi.RMIConnection.run()
    void com.evermind.util.ThreadPoolThread.run()
    Has anyone got any ideas what is happening here and how I can fix it?
    Thanks,
    Mark.

    This is an OC4J question. Try posting your message to the Products > Application Server > J2EE forum. Someone there should be able to answer your question.

  • NoClassDefFoundError extending class in separate JAR

    I have a class Foo which gets called from my servlet (extends HttpServlet) class. Both Foo and the servlet class are located in WEB-INF/classes and are deployed as part of the war file. Class Foo extends class Bar, which is a different .jar file located in the /WEB-INF/lib directory of the webapp. When I attempt to create an instance of Foo, I get the following exception:
    java.lang.NoClassDefFoundError: /general/client/common/beans/Bar
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1267)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at server.DBServlet.createFoo(DBServlet.java:236)
         at server.DBServlet.processInput(DBServlet.java:333)
         at server.DBServlet.doGet(DBServlet.java:154)
         at server.DBServlet.doPost(DBServlet.java:205)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)
    I'm running this on Windows, and found if I added the classpath the the jar file where the Bar class is located, that it worked fine. But my expectation is that the jar file should have been found because it is in the /WEB-INF/lib dir. There is a line the Tomcat docs that says:
    "Last, any JAR containing servlet API classes will be ignored by the classloader. All other class loaders in Tomcat 5 follow the usual delegation pattern."
    So maybe I need to do something special to load the Bar class, or there's something strange about the way the classes and jars are being loaded that I don't fully understand. I was able to instantiate the Bar class directly from w/in my servlet class, I just can't create an instance of the Foo class that is in /WEB-INF/classes along with the servlet class. So I'm not convinced that the Bar class or associated jar file isn't being loaded.
    I don't want to have to set the classpath explicitly, so I'm looking for advice on why I'm getting this exception and how best to dynamically load the classes I need.
    Thanks.
    ab.

    Thanks for hanging in there so far. Here's the specifics if you want to try to re-create this.
    I have a webapp, which contains the class DBServlet:
    package com.hm.dhca.server;
    public class DBServlet extends HttpServlet
    // Stuff
         public void processInput()
              Foo foo = new Foo();
    The webapp also contains the class Foo:
    package com.hm.dhca.common;
    import com.general.client.common.beans.Bar;
    public class Foo extends Bar
         public Foo()
              super();
              System.out.println("Foo");
    Both of the classes are located in webapps\DHCA\WEB-INF\classes...
    The Bar class is in a separate jar called HMJCommon.jar in the webapps\DHCA\WEB-INF\lib dir.
    Class Bar looks like this:
    package com.general.client.common.beans;
    public class Bar
         public Bar()
              System.out.println("Bar");
    DBServlet creates an instance of Foo as:      
    Foo foo = new Foo();
    Which throws the Exception:
    java.lang.NoClassDefFoundError: com/general/client/common/beans/Bar
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1267)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at com.hm.dhca.server.DBServlet.processInput(DBServlet.java:236)
         at com.hm.dhca.server.DBServlet.doGet(DBServlet.java:154)
         at com.hm.dhca.server.DBServlet.doPost(DBServlet.java:205)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)
    Clues:
    1. All three classes exist in the locations specified above - I have checked this manually.
    2. Within DBServlet, I can create an instance of Bar. But I cannot create an instance of Foo without the exception.
    3. If I move the Foo class from package com.hm.dhca.common to package com.hm.dhca.server (same package as DBSerlvet), everything works fine.
    4. If I modify Tomcat's classpath to include the HMJCommon.jar, it works fine (as previously discussed).
    Theory:
    I have a vague theory that what is happening is that two different webappclassloaders are loading the Foo and Bar classes, for whatever reason. As a result, they can't see each other, because neither is up the hierarchy tree from the other.
    This does not explain how I can instantiate Bar from DBServlet, but not Foo.
    Hope this helps. I think I've corrected previous mistake w/ removing too much from package naming. I'm resorting to the workaround in clue #3 for the moment. But it's not the correct solution, and it's showing that I don't really understand what's going on here.

  • Weblogic 12c JSF2 and EJB3.1 using CDI injection , in separate jar files

    I am trying to inject a stateless EJB and  managed Bean of JSF2 into a CDI managed controller.
    That means using @inject replace @EJB of EJB and @Named of CDI replace @ManageBean in JSF2 ,  EJB3.1 and JSF2 in separate jar files.
    At result,My  test  gets the following Exception in  weblogic 12c。
    If EJB in separate files and Managed Bean of JSF in WEB-INF/classes not separte file, then no problem.
    weblogic.management.DeploymentException:
         at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:123)
         at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:239)
         at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)
         at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:96)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:229)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Caused By: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [ISaleInfoService] with qualifiers [@Default] at injection point [[field] @Inject private com.hylandtec.hystone.showcase.web.SaleInfoBean.saleInfoService]
         at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:258)
         at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:105)
         at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:125)
         at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:324)
         at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:309)
         at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:361)
         at com.oracle.injection.provider.weld.WeldInjectionContainer.start(WeldInjectionContainer.java:105)
         at com.oracle.injection.integration.CDIAppDeploymentExtension.prepare(CDIAppDeploymentExtension.java:60)
         at weblogic.application.internal.flow.AppDeploymentExtensionFlow.prepare(AppDeploymentExtensionFlow.java:23)
         at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:706)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
         at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)
         at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)
         at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:96)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:229)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Edited by: user8823518 on 2012-3-12 上午12:49

    This is a Weblogic 12.1.1 bug (a patch is available), explained here:
    http://docs.oracle.com/cd/E24329_01/doc.1211/e26593/issues.htm#BCFGBBBE
    extract:
    If a WAR file has two embedded bean deployment archive JARs (that is, JARs that contain META-INF/beans.xml), an UnsatisfiedDependencyException occurs if a class in one JAR contains an @Inject that is of a type that is defined in the other JAR.
    Workaround
    +Download and install patch 13563205. Enter this value in the Patch Number Search field on the Patches & Updates tab of My Oracle Support.+

  • (261936172) Q general How can I access an EJB hosted on a remote server?

    Q<general> How can I access an EJB hosted on a remote server?
    A<general> The ability to add EJB control files enables you to access an EJB that
    is deployed to the server on which your web service is running. When you select
    "add EJB control" you need to supply the home and remote interfaces for the EJB
    as well as the JNDI name. This does not provide you with the capability for creating
    a control for a remotely hosted EJB. To use a EJB hosted on another server you
    will have to provide the appropriate code within your web service itself. You
    will have to programmatically gain to access the JNDI for the remote server, lookup
    up the home stub and use it to create the remote stub for the EJB. Of course,
    to make this work you must have the necessary client interfaces in you classpath
    (home and remote interfaces) which can easliy be achieved by adding the EJB client.jar
    file to the lib directory in the webservice WEB-INF folder.

    just define the different server path in the description xml file
    <jndi-name>jnp://serverA(B)/....</jndi-name>

Maybe you are looking for

  • How do I set up a 3GS to use without sim as an ipod touch.

    How do I set up a 3GS to use without sim as an ipod touch.

  • Too Much Code? Novice Question

    Greetigns, First off, know I searched for an answer but being that I am new to the AS game (as well as programming in general) I coudl not find an answer that suited my needs. I am using Flash CS3 w/ AS3 Basically I have a row of images that serve as

  • Receiving POs through DTW

    HI All, i need to receive Purchase orders into system using DTW i have 10,000 serials numbers on every product. under dtw which template i should use it. normally they create a po in the sytem like 4 items in purchase orders and each item has got a s

  • Interesting Situation Regarding OLE

    Hi professional I have two blocks on my form 1) order 2) item Order is a master block containg fields order_id, customer_id,date_order,date_shipped,sales_rep_id,total,payment_type,order_filled Item is a detail block containing fields order_id,item_id

  • How do I  import a word document without format errors?

    I am trying to import a word document into Dreamweaver to turn it into HTML so I can enter it into an email. I don't want to send the email with an attachment, I want to be able to insert it into the body. Dreamweaverclaims to be able to do this succ