EJB3 ejb-ref/JNDI confusion

Hi,
I'm trying to learn EJB3 development on WebLogic 10, but am struggling because the version 10 documentation refers to EJB 2.1 and version 9.0 weblogic-ejb-jar.xml (which isn't supported by version 10).
I'd like to have my EJB's hosted on one WLS, then servlets on a separate server. I'd like to define SLSB and Servlet EJB dependencies using annotations but am not keen about hard-coding global JNDI names.
What is a good, portable approach? Can mapping from logical to physical JNDI names still be done in deployment descriptors?
Thanks, Chris.

you can directly use the hash table pass the propertyes to IntialContext Object .
For Example
java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
java.naming.provider.url=iiop://localhost:3700/Deceval
and give the username and password of you are server
like :
java.naming.security.principal=admin
java.naming.security.credentials=12345678

Similar Messages

  • How to lookup EJB3 beans using JNDI names without defining ejb-ref in DD?

    Hi Kenneth,
    I am just continuing the topic:
    How Lookup SLSB from other SLSB? <HELP>
    http://forum.java.sun.com/thread.jspa?threadID=5117484&tstart=0
    (my original forums account failed, so I am using new one)
    if I am not seeking portability I should be able to lookup a bean directly through JNDI without using the ejb-ref. (I just want to see how it can be done)
    http://forum.java.sun.com/thread.jspa?forumID=13&threadID=751907
    http://www.theserverside.com/discussions/thread.tss?thread_id=16402
    I am using SJSAS PE 9.0 I am failing to lookup my beans from other beans directly without ejb-ref.
    Is there some sample code to look at?
    Thanks!

    Global JNDI names are vendor-specific and not known until deployment time. That is one
    of the main reasons the Java EE component environment model defines a level of
    indirection for accessing component dependencies. It is best to use either an ejb-ref
    or @EJB annotation when accessing EJBs from a Java EE component.
    If you choose not to, you just have to make sure the global JNDI name you use matches
    the one assigned to the target EJB. We have a lot of information on how this works
    in our EJB FAQ.
    https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html
    If you're still encountering an error, please provide more specifics about your application,
    the code you're using for the lookup, and the error message you're receiving. Just
    saying "my looking fails" doesn't help us diagnose the problem :-)
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Ejb-ref and JNDI lookup problem

    Hi,
    I use WLS6.1sp2. I created one EntityBean and SessionBean jar files. I tried to
    use session bean to refer entity bean, I failed. The details are as following:
    In EntityBean's weblogic-ejb-jar.xml, I set:
    <jndi-name>cabin.CabinHome</jndi-name>
    In sessionbean's ejb-jar.xml
    <ejb-ref>
    <ejb-ref-name>ejb/CabinHome</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.titan.cabin.CabinHome</home>
    <remote>com.titan.cabin.Cabin</remote>
    </ejb-ref>
    In sessionbean's weblogic-ejb-jar.xml
    <reference-descriptor>
         <ejb-reference-description>
              <ejb-ref-name>ejb/CabinHome</ejb-ref-name>
              <jndi-name>ejb/CabinHome</jndi-name>
         </ejb-reference-description>
    </reference-descriptor>
    At sessionbean's client, I use
    javax.naming.Context jndiContext = getInitialContext();
    Object obj = jndiContext.lookup("java:comp/env/ejb/CabinHome");
    When I run client file, I get the following error message:
    - with nested exception:
    [javax.naming.LinkException:  [Root exception is javax.naming.NameNotFoundException:
    Unable to resolve ejb.CabinHome Resolved: '' Unresolved:'ejb' ; remaining name
    'CabinHome']; Link Remaining Name: 'ejb/CabinHome']>
    javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundException:
    Unable to resolve ejb.CabinHome Resolved: '' Unresolved:'ejb' ; remaining name
    'CabinHome'
         <<no stack trace available>>
    --------------- nested within: ------------------
    javax.ejb.EJBException
    - with nested exception:
    [javax.naming.LinkException:  [Root exception is javax.naming.NameNotFoundException:
    Unable to resolve ejb.CabinHome Resolved: '' Unresolved:'ejb' ; remaining name
    'CabinHome']; Link Remaining Name: 'ejb/CabinHome']
         at com.titan.travelagent.TravelAgentBean.listCabins(TravelAgentBean.java:45)
         at com.titan.travelagent.TravelAgentBean_a4c3ph_EOImpl.listCabins(TravelAgentBean_a4c3ph_EOImpl.java:37)
         at com.titan.travelagent.TravelAgentBean_a4c3ph_EOImpl_WLSkel.invoke(Unknown
    Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
         at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    ####<Feb 1, 2002 11:32:40 PM PST> <Info> <Management> <dj> <travelServer> <ExecuteThread:
    '14' for queue: 'default'> <system> <> <140009> <Configuration changes for domain
    saved to the repository.>
    Do you know what's wrong? how to fix this problem?
    Thanks in advance.
    DJ

    Slava,
    I took "cabin." out from weblogic-ejb-jar.xml, I got the same error.
    DJ
    "Slava Imeshev" <[email protected]> wrote:
    Hi DJ,
    I think you don't need "cabin." in weblogic-ejb-jar.xml :
    <jndi-name>cabin.CabinHome</jndi-name>
    Regards,
    Slava Imeshev
    "DJ" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    I use WLS6.1sp2. I created one EntityBean and SessionBean jar files.I
    tried to
    use session bean to refer entity bean, I failed. The details are asfollowing:
    In EntityBean's weblogic-ejb-jar.xml, I set:
    <jndi-name>cabin.CabinHome</jndi-name>
    In sessionbean's ejb-jar.xml
    <ejb-ref>
    <ejb-ref-name>ejb/CabinHome</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.titan.cabin.CabinHome</home>
    <remote>com.titan.cabin.Cabin</remote>
    </ejb-ref>
    In sessionbean's weblogic-ejb-jar.xml
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>ejb/CabinHome</ejb-ref-name>
    <jndi-name>ejb/CabinHome</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    At sessionbean's client, I use
    javax.naming.Context jndiContext = getInitialContext();
    Object obj = jndiContext.lookup("java:comp/env/ejb/CabinHome");
    When I run client file, I get the following error message:
    - with nested exception:
    [javax.naming.LinkException:  [Root exception is
    javax.naming.NameNotFoundException:>> Unable to resolve ejb.CabinHome Resolved: '' Unresolved:'ejb' ; remaining>name>> 'CabinHome'; Link Remaining Name: 'ejb/CabinHome']>
    javax.naming.LinkException: . Root exception isjavax.naming.NameNotFoundException:
    Unable to resolve ejb.CabinHome Resolved: '' Unresolved:'ejb' ; remainingname
    'CabinHome'
    <<no stack trace available>>
    --------------- nested within: ------------------
    javax.ejb.EJBException
    - with nested exception:
    [javax.naming.LinkException:  [Root exception is
    javax.naming.NameNotFoundException:>> Unable to resolve ejb.CabinHome Resolved: '' Unresolved:'ejb' ; remaining>name>> 'CabinHome'; Link Remaining Name: 'ejb/CabinHome']
    atcom.titan.travelagent.TravelAgentBean.listCabins(TravelAgentBean.java:45)
    atcom.titan.travelagent.TravelAgentBean_a4c3ph_EOImpl.listCabins(TravelAgentBe
    an_a4c3ph_EOImpl.java:37)
    atcom.titan.travelagent.TravelAgentBean_a4c3ph_EOImpl_WLSkel.invoke(Unknown
    Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
    atweblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java
    :93)
    atweblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
    atweblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
    2)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    ####<Feb 1, 2002 11:32:40 PM PST> <Info> <Management> <dj> <travelServer><ExecuteThread:
    '14' for queue: 'default'> <system> <> <140009> <Configuration changesfor
    domain
    saved to the repository.>
    Do you know what's wrong? how to fix this problem?
    Thanks in advance.
    DJ

  • EJB Refs ( coded name and JNDI name )

    Hi
    I am just starting to develop EJBs . I can't get to work the EJB refs as expected . In a session bean I have a lookup for an Entity bean . Both beans are in separate JAR files , but in the same ear .
    The lookup from session bean to entity bean only works when
    the coded name in EJB ref is defined exactly the same as JNDI name for enity bean , also the name in lookup method must be the same in session bean .
    To my surprise , the JNDI name for the target EJB , defined in EJB ref for session bean , does not mater at all . Even if I change it to a non existant name , the bean lookup works .
    Theoritacally I understand that EJB ref is there to provide a mapping between the name of bean mentioned in code to the actual JNDI name of another bean , at the time of deployment .
    The above is happening in J2EE 1.4 envoirment .
    Please let me know , what am I doing here that is wrong .
    ( All examples and tutorials , usually give coded name same as JNDI name ) .
    Thanks
    Tarun

    Hi Tarun,
    The ejb-ref-name lives in a different namespace than the global JNDI names. Any names of ejb-refs, ejb-local-refs, resource-refs, etc. are scoped within a particular component's private namespace. All environment references are accessed via the java:comp/env namespace at runtime. So, if your ejb-ref-name(a.k.a "coded name") is ejb/foo in the deployment descriptor, you would access it from the code as follows :
    initialContext.lookup("java:comp/env/ejb/foo");
    This way, neither the standard deployment descriptor nor the code has any dependency on the global JNDI name. That's a good thing since the decision about which target EJB should be linked to is often not made until deployment time rather than development time. Furthermore, it means if you want to change the linking you can always do it without recompiling your code.
    As for the global JNDI names, the first thing to note is that they are completely vendor-specific. That's why they don't appear in the standard deployment descriptor. In the J2EE SDK, each EJB that exposes a Remote view is assigned a global JNDI name in sun-ejb-jar.xml. This JNDI name is assigned from the global namespace of the application server. There's nothing stopping it from also being "ejb/foo", but it refers to a different thing than the "ejb/foo" above.
    Now we have an ejb-ref called ejb/foo and an ejb whose JNDI name is ejb/foo, but we haven't linked the two. When it comes to linking, you have two choices:
    1. If the target ejb is in the same .ear as the client component, you can use the ejb-link mechanism. This allows you to specify the target ejb by referring to its ejb-name. Since ejb-name is only guaranteed to be unique within an ejb-jar, the syntax allows for you to give the uri of the containing ejb-jar, followed by #, followed by ejb-name.
    2. Alternatively, you can specify the global JNDI name of the target ejb using sun-ejb-jar.xml Note that this will work whether the target ejb is in the same .ear or not. However, it's the only option if the target ejb is in a different .ear. In this case, you would create an ejb-ref entry for the client component within the sun-ejb-jar.xml. e.g. :
    <ejb>
    <ejb-name>MyClientBean</ejb-name>
    <ejb-ref>
    <ejb-ref-name>ejb/foo</ejb-ref-name>
    <jndi-name>ejb/foo</jndi-name>
    </ejb-ref>
    </ejb>
    Again, it's just a coincidence that both names happen to be ejb/foo. They refer to different things.
    When you do a global lookup from your code, initialContext.lookup('ejb/foo"), it will work in some environments because you're simply bypassing the level of indirection provided by your component environment and going straight to the global namespace. This is non-portable and not a good idea, since you've now tightly coupled the name of the target ejb to your client component. That means if it changes you need to recompile your code. Hope this helps.
    --ken

  • Ejb-ref, ejb-link or JNDI lookup

    If I have an application in which one EJB is using another EJB in the SAME application,
    what is the best of way of accessing the other EJB?
    Why would I use ejb-ref / ejb-link instead of just looking it up in the JNDI?
    Just curious.
    Thanks.
    Dan

    ejb-ref/ejb-link were introduced in the ejb spec to allow bean developers to
    develop beans without any knowledge of the environment into which they would
    be deployed. If you can live with hard coded jndi names then that is fine or
    you can use the mechanism define below but using ejb-ref/ejb-link makes your
    beans more reuseable and less dependent on the final environement.
    If both the ejbs are in the same application I would recommend using ejb-ref
    and ejb-link.
    -- Anand
    "Chad McDaniel" <[email protected]> wrote in message
    news:[email protected]..
    "Dan Baumbach" <[email protected]> writes:
    If I have an application in which one EJB is using another EJB in the
    SAME application,
    what is the best of way of accessing the other EJB?
    Why would I use ejb-ref / ejb-link instead of just looking it up in theJNDI?
    >>
    >
    I believe that ejb-ref/link is not useful in most systems and causes
    another level of complexity to maintain. Since EJBs are complex enough
    I think that using the basic JNDI lookup is preferable. Also, this
    frees you to move the beans to a remote server if you ever want to.
    The simplest and most flexible technique, I believe, is to use a
    utility class that handles all EJB lookups for you and use a simple
    EJB and JNDI name mapping that this class can generate the JNDI name
    with a simply manipulation of the bean name. If you ever change the
    reference technique you will then only have one class to modify.
    This is also a good place to cache home references.

  • Does mapping to JNDI for ejb-refs have a performance impact?

    Does mapping to JNDI names for ejb-refs have a performance impact for
    WLS6.1?
    In the ejb-jar.xml deployment descriptor, you can define an ejb reference as
    follows:
    <ejb-ref>
    <ejb-ref-name>ejb/AccountHomeRemote</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.package structure.AccountHomeRemote</home>
    <remote>com.package structure.AccountRemote</remote>
    <!-- <ejb-link>AccountBean</ejb-link>-->
    </ejb-ref>
    Now, optionally, you can use the ejb-link element - or - you can, in the
    weblogic DD, specify a JNDI name that the ejb-ref maps to.
    Using a JNDI name buys you some flexibility. If, for some reason, the jar is
    divided, you dont have to convert ejb-link's to JNDI names. The question is:
    Is there a performance cost in doing this?
    Cheers

    Hi Aashish,
    Thanks for your quick reply. it was helpful, but i am not using RFC's. Correct me if i am wrong, but i have explained the scenarios in detail below.
    Scenario 1. Synchronous
    1) PI Picks file from a common folder.
    2) PI does a data mapping and sends the data to ECC.
    3) ECC contains an inbound interface which receives the data and in which abap proxy code is written.
    4) The abap proxy code executes a function module and sends the response as an internal table back to PI.
    5) PI receives the response and places it in a text/csv file and places it back to another folder.
    I assume that the above would be possible only using BPM. What i understand is that in order for an interface to receive and send data, abstract mappings are to be used, and for this BPM is required. We do not have any conversions etc. its just a simple matter of receiving an internal table from ECC and creating a file to place in the folder.
    I also understand that BPM could have bottlenecks due to queue and cache issues, messages might be pending, or lost etc.
    Scenario 2. Asynchronous
    1) PI Picks file from a common folder.
    2) PI does a data mapping and sends the data to ECC.
    3) ECC contains an inbound interface which receives the data and in which abap proxy code is written.
    4) ABAP Proxy code executes the same function module and calls a seperate outbound interface and passes the values to it. This would be used in sending the response back.
    5)  PI receives the response from the second interface and places it in a text/csv file and places it back to another folder.
    I would like to know which would be the better approach. Documentation/references to support your claims would be much appreciated.
    Cheers,
    Mz

  • JNDI confusion

    Hello,
    I am a little confused about JNDI and EJB. I am currently writing a
    Session Bean that talks with another SessionBean (in this case
    FooSessionBean will be talking to BarSessionBean. I got it to compile
    and work fine when I was using the global JNDI namespace using the
    deployment descriptors below:
    ----- ejb-jar.xml snippet -----
    <session>
    <ejb-name>FooSessionBean</ejb-name>
    <local-home>com.foo.ejb.FooLocalHome</local-home>
    <local>com.foo.ejb.FooLocal</local>
    <ejb-class>com.foo.ejb.FooSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    <session>
    <ejb-name>BarSessionBean</ejb-name>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-class>com.foo.ejb.BarSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    ----- weblogic-ejb-jar.xml snippet -----
    <weblogic-enterprise-bean>
    <ejb-name>FooSessionBean</ejb-name>
    <local-jndi-name>FooLocalHome</local-jndi-name>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>
    <ejb-name>HttpForwardingServiceSessionBean</ejb-name>
    <local-jndi-name>FooLocalHome</local-jndi-name>
    </weblogic-enterprise-bean>
    The problem is that now I don't want to depend on the global JNDI
    tree, I want to use local jndi trees using the "java:comp/env" prefix.
    In addition I want to EJBs to be in the ejb namespace
    (java:comp/env/ejb/BeanName) So I altered the ejb-jar.xml file as
    follows:
    ----- ejb-jar.xml snippet -----
    <session>
    <ejb-name>BarSessionBean</ejb-name>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-class>com.foo.ejb.BarSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <ejb-local-ref>
    <ejb-ref-name>BarSessionBean</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-link>BarSessionBean</ejb-link>
    </ejb-local-ref>
    </session>
    <session>
    <ejb-name>BarSessionBean</ejb-name>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-class>com.foo.ejb.BarSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    I have tried many different combinations of tags in the
    weblogic-ejb-jar.xml with no success. So I have 2 questions,
    1.) What do I need to add/subtract from my weblogic-ejb-jar.xml file
    in order to be able to use local jndi trees, and
    2.) What do I need to do to map the references to the ejb
    (java:comp/env/ejb/BeanName) namespace?
    Any help would be much appreciated.
    Glenn Kidd

    Did you try something like this:
    For ejb-jar.xml with:
    <ejb-local-ref>
    <ejb-ref-name>BarSessionBean</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-link>BarSessionBean</ejb-link>
    </ejb-local-ref>
    The weblogic-ejb-jar.xml should have:
    <reference-descriptor>
    <ejb-local-reference-description>
    <ejb-ref-name>BarSessionBean</ejb-ref-name>
    <jndi-name>foo.BarSessionBean</jndi-name>
    </ejb-local-reference-description>
    </reference-descriptor>
    Anyway, it is documented at:
    http://e-docs.bea.com/wls/docs61/ejb/reference.html#1160215
    Bill
    Glenn Kidd wrote:
    Hello,
    I am a little confused about JNDI and EJB. I am currently writing a
    Session Bean that talks with another SessionBean (in this case
    FooSessionBean will be talking to BarSessionBean. I got it to compile
    and work fine when I was using the global JNDI namespace using the
    deployment descriptors below:
    ----- ejb-jar.xml snippet -----
    <session>
    <ejb-name>FooSessionBean</ejb-name>
    <local-home>com.foo.ejb.FooLocalHome</local-home>
    <local>com.foo.ejb.FooLocal</local>
    <ejb-class>com.foo.ejb.FooSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    <session>
    <ejb-name>BarSessionBean</ejb-name>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-class>com.foo.ejb.BarSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    ----- weblogic-ejb-jar.xml snippet -----
    <weblogic-enterprise-bean>
    <ejb-name>FooSessionBean</ejb-name>
    <local-jndi-name>FooLocalHome</local-jndi-name>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>
    <ejb-name>HttpForwardingServiceSessionBean</ejb-name>
    <local-jndi-name>FooLocalHome</local-jndi-name>
    </weblogic-enterprise-bean>
    The problem is that now I don't want to depend on the global JNDI
    tree, I want to use local jndi trees using the "java:comp/env" prefix.
    In addition I want to EJBs to be in the ejb namespace
    (java:comp/env/ejb/BeanName) So I altered the ejb-jar.xml file as
    follows:
    ----- ejb-jar.xml snippet -----
    <session>
    <ejb-name>BarSessionBean</ejb-name>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-class>com.foo.ejb.BarSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <ejb-local-ref>
    <ejb-ref-name>BarSessionBean</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-link>BarSessionBean</ejb-link>
    </ejb-local-ref>
    </session>
    <session>
    <ejb-name>BarSessionBean</ejb-name>
    <local-home>com.foo.ejb.BarLocalHome</local-home>
    <local>com.foo.ejb.BarLocal</local>
    <ejb-class>com.foo.ejb.BarSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    I have tried many different combinations of tags in the
    weblogic-ejb-jar.xml with no success. So I have 2 questions,
    1.) What do I need to add/subtract from my weblogic-ejb-jar.xml file
    in order to be able to use local jndi trees, and
    2.) What do I need to do to map the references to the ejb
    (java:comp/env/ejb/BeanName) namespace?
    Any help would be much appreciated.
    Glenn Kidd

  • Ejb-ref in oc4j 10.1.3.2.0 standalone

    Hi,
    i asked this before, but i didnt receive any answers. So i looked in more deeply to be more precise.
    I developed and deployed a Webservice with JDEV 10.1.3 which looks up EJBs in a remote oc4j. I configured the ejb-references in web.xml and orion-web.xml like shown in the documentation by using ejb-ref-mapping attribute jndi-properties-file and remote-server-ref=true. That works fine in embedded oc4j 10.1.3.2.0.
    If i deploy the same application to standalone oc4j 10.1.3.2.0 the application fails wih a naming exception. If i hardcode the jndi-properties again all works fine, so it seems to be a problem of configuration.
    So i let print out some information about the InitialContext constructed im the ServiceLocator-Class i use:
    ctx = new InitialContext( );
    Hashtable ha = ResourceManager.getInitialEnvironment(null);
    logger.debug("" + ha.get(InitialContext.PROVIDER_URL));
    NamingEnumeration nenum = ctx.listBindings("java:comp/env");
    There are indeed some differences between the standalone and the embedded as listed below:
    embedded:
    07/09/17 17:53:36 ormi://remote-IP: javax.naming.Reference:Reference Class Name: javax.ejb.EJBHome
    Type: location
    Content: MyBeanFacade
    Type: remote-server-ref
    Content: true
    Type: jndi-properties-file
    Content: jndi.properties
    07/09/17 17:53:36 ejb: javax.naming.Context:[Context TestWS-org-webapp: {MyBeanFacade=Reference Class Name: javax.ejb.EJBHome
    Type: location
    Content: MyBeanFacade
    Type: remote-server-ref
    Content: true
    Type: jndi-properties-file
    Content: jndi.properties
    , ejb/MBeanServerUserEjb=Reference Class Name: javax.ejb.EJBHome
    Type: location
    Content: MBeanServerUserEjb
    standalone:
    07/09/17 18:14:06 ormi://IP-ofTheHostOfOC4J:23791/default
    07/09/17 18:14:06 MyBeanFacade: javax.naming.Reference:Reference Class Na
    me: javax.ejb.EJBHome
    Type: location
    Content: MyBeanFacade
    07/09/17 18:14:06 ejb: javax.naming.Context:[Context webapp: {MyBeanFacad
    e=Reference Class Name: javax.ejb.EJBHome
    Type: location
    Content: MyBeanFacade
    , ejb/MBeanServerUserEjb=Reference Class Name: javax.ejb.EJBHome
    Type: location
    Content: MBeanServerUserEjb
    The difference is obvious.
    Interestingly http://www.oracle.com/technology/oracleas/schema/orion-web-10_0.xsd
    dosnt neither define jndi-properties-file nor remote-server-ref for ejb-ref-mapping. On the other hand, thats what one finds in the documentation.
    Another problem is, that originally the oc4j tried to lookup with protocol ormis.
    So i had first to delete ssl-port = "23943" from rmi.xml to see ormi.
    Now on the first call of the Web Service after start of the server in fact the lookup goes to the remote-IP not to the IP-ofTheHostOfOC4J as written before. But the lookup fails with a namingexception anyway. After the second call the lookup goes to IP-ofTheHostOfOC4J again, even though the application is restarted or redeployed.
    Its not very funny to go through this configuration issues with every new revision of the software. Perhaps the lack of feedback in this forum is a hint to open more often a tar than to post herein.
    Regards chris                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Thank u both for your answers.
    First of all this is not a Web Service specific issue at all, its about configuring ejb-references for web-components.
    The difference was between embedded and standalone.
    The reason for this behavior is a bug in 10.1.3.1 standalone.
    I think this could be fixed in this 1/2 GB patch from july 2007, so why not upgrading to 10.1.3.3 for which i assume that it includes the fix as Olaf proposed following my proposal ;-)
    Anyway you can work around it quite simple:
    The reason is that during the deployment the contents of the custom (contained in the ear-file) orion-web.xml is not properly added to the generated orion-web.xml in applications-deployments.
    The ejb-remote attrbiute is discarded.
    So just add it to the generated orion-web.xml after the deployment and restart the oc4j. Dont redeploy or restart the application cause a redopleyment would overwrite your changes.
    Thanks for my help :-)
    Chris

  • Ejb-ref error when deploying a previously working ear on weblogic 8.1

    when deploying an ear module on weblogic 8.1 i get the following error:
    The ejb-link 'CustomessagingBrick.jar/CustomMessaginBrick' declared in ejb-ref
    or ejb-local-ref 'ejb/Service2' in the application module 'cmbrick.war' could
    not be resolved. The target EJB for the ejb ref could not be found.
    The ear is composed of two sub-modules:
    CustomMessaginBrick.jar
    cmbrick.war.
    The same ear was deployed on weblogic 6.1.
    Every reference in the ear seems in the right place so i am really clueless.
    Hereafter i include the relevant portions of the deployment descriptors.
    the web.xml for cmbrick.war contains the following data:
    <ejb-local-ref>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocalHome</local-home>
    <local>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocal</local>
    <ejb-link>CustomMessagingBrick</ejb-link>
    </ejb-local-ref>
    its weblogic.xml file is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
    <weblogic-web-app>
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <jndi-name>Service2</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    </weblogic-web-app>
    while the weblogic-ejb-jar for CustomMessaging bricks contains the following:
    <weblogic-enterprise-bean>
    <ejb-name>CustomMessagingBrick</ejb-name>
    <stateless-session-descriptor>
    <pool>
    </pool>
    <stateless-clustering>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    </transaction-descriptor>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>Service2</jndi-name>
    </weblogic-enterprise-bean>....

    when deploying an ear module on weblogic 8.1 i get the following error:
    The ejb-link 'CustomessagingBrick.jar/CustomMessaginBrick' declared in ejb-ref
    or ejb-local-ref 'ejb/Service2' in the application module 'cmbrick.war' could
    not be resolved. The target EJB for the ejb ref could not be found.
    The ear is composed of two sub-modules:
    CustomMessaginBrick.jar
    cmbrick.war.
    The same ear was deployed on weblogic 6.1.
    Every reference in the ear seems in the right place so i am really clueless.
    Hereafter i include the relevant portions of the deployment descriptors.
    the web.xml for cmbrick.war contains the following data:
    <ejb-local-ref>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocalHome</local-home>
    <local>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocal</local>
    <ejb-link>CustomMessagingBrick</ejb-link>
    </ejb-local-ref>
    its weblogic.xml file is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
    <weblogic-web-app>
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <jndi-name>Service2</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    </weblogic-web-app>
    while the weblogic-ejb-jar for CustomMessaging bricks contains the following:
    <weblogic-enterprise-bean>
    <ejb-name>CustomMessagingBrick</ejb-name>
    <stateless-session-descriptor>
    <pool>
    </pool>
    <stateless-clustering>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    </transaction-descriptor>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>Service2</jndi-name>
    </weblogic-enterprise-bean>....

  • Ejb-ref-mapping in orion-ejb.jar missing location attribute after deployment

    I have noticed that on several of my entity beans that after deployment the <ebj-ref-mapping location="JNDIName" name="LocalName"/> is missing the location attribute. This causes any attempts to lookup the EJBHome for that EJB to fail because the path to the EJBHome in JNDI cannot be found (obviously!). The problem is that this causes me to manually edit the application-deployment/<app>/<ejb.jar>/orion-ejb.zml after each deployment via the admin.jar. This seems like a bug with OC4J and I am wondering if Oracle is aware/doing something to fix this?
    I have noticed that the same problem exists for session beans, however, for some strange reason the EJBHomes can still be resolved in JNDI. In all cases the location in JNDI is different then the <ejb-ref-name> I used in the client EJB.
    Example being I have an entity bean at com.foo.Foo and the session bean uses lookup("java:comp/env/ejb/Foo") it is still able to find the EJB even though the orion-ejb.xml looses the location attribute. If the case is an entity bean referencing another entity bean in the same fashion I get an error because the location attribute is missing.

    If the 'location' value is same as the 'name' value, then even though the location attribute is missing, it is ok and should work. If they are not the same, then you should have defined the ejb-link element in your ejb-jar.xml when defining this ejb-ref and that would make the location attribute appear in the generated orion-ejb-jar.xml.
    If the referenced bean is from a different application (EAR), then you should have used the -parent option when deploying the application.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Kris Trujillo ([email protected]):
    I have noticed that on several of my entity beans that after deployment the <ebj-ref-mapping location="JNDIName" name="LocalName"/> is missing the location attribute. This causes any attempts to lookup the EJBHome for that EJB to fail because the path to the EJBHome in JNDI cannot be found (obviously!). The problem is that this causes me to manually edit the application-deployment/<app>/<ejb.jar>/orion-ejb.zml after each deployment via the admin.jar. This seems like a bug with OC4J and I am wondering if Oracle is aware/doing something to fix this?
    I have noticed that the same problem exists for session beans, however, for some strange reason the EJBHomes can still be resolved in JNDI. In all cases the location in JNDI is different then the <ejb-ref-name> I used in the client EJB.
    Example being I have an entity bean at com.foo.Foo and the session bean uses lookup("java:comp/env/ejb/Foo") it is still able to find the EJB even though the orion-ejb.xml looses the location attribute. If the case is an entity bean referencing another entity bean in the same fashion I get an error because the location attribute is missing.<HR></BLOCKQUOTE>
    null

  • Web.xml question -- ejb-ref

    Can anyone explain the reasons for using the <ejb-ref> tag in the web.xml file?
    Currently, I have a context-param that matches a param-name to a param-value. My code looks up the param-value and, via JNDI, gets the EJB referenced.
    Does the <ejb-ref> tag provide an easier, more standard method for doing this or is it there just to show that particular EJB is referenced?
    Any information would be very helpful.

    Thanks, but this makes no sense to me. Why should a
    web app be different than any other app? Why make a
    special tag?
    Is this tag required? Is it possible to use an EJB
    without it or is this someone required?Your webapp can access the ejb without this tag at all but using its jndi name. This tag (<ejb-ref>) is just a standard way of accessing ejb's within the webapp.
    For eg. consider this WEB.XML,
    <ejb-ref>
    <description>Reference to DEPT bean</description>
    <ejb-ref-name>EJB-DeptRecord</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.test.DeptHome</home>
    <remote>com.test.DeptRemote</remote>
    </ejb-ref>
    You can lookup like this using the ejb-reference name.
    Context ctx = new InitialContext();
    Object obj = ctx.lookup("java:comp/env/EJB-DeptRecord"); <-------
    Since JNDI names usually have directory structure (eg. /test/ejb/..),
    this ejb-ref tag provides a convenient way to do the lookup without the jndi-name cluttering up your code.

  • Ejb ref resolution error

    Dear all,
    I try to set up a simple ejb environment. I managed to run the converter example from the JEE tutorial bundle in the NetBeans / Glassfish environment.
    Then I tried to write a standalone java client. The code consists in essential of the statements
    Context ctx = new InitialContext();
    ctx.lookup("converter.ejb.Converter");Unfortunately, running this program from a windows command line by the "java" command (plus some classpath settings) results in:
    NamingException: ejb ref resolution error for remote business interface converter.ejb.ConverterThe jndi entries of the app server are
    jndi root
      |
      |--  converter.ejb.Converter#converter.ejb.Converter
      |--  converter.ejb.Converter__3_x_Internal_RemoteBusinessHome__
      |
      |--ejb
          |-- converter.ejb.Converter All environment settings are the standard ones.
    Has anybody an idea, what the problem could be ? Thank you very much for your help.
    Ralph

    Hi,
    thanks for your interest. The client code is
    // file ConverterClient
    package ejb.clients;
    import javax.naming.*;
    import java.util.*;
    public class ConverterClient
      public static void main(String[] args)
        try
          Context ctx = new InitialContext();
          ctx.lookup("converter.ejb.Converter");
          Enumeration e = ctx.list("");
          while (e.hasMoreElements())
            System.out.println(e.nextElement());
        catch(NamingException ex)
          ex.printStackTrace();
    }The interface:
    // file Converter
    package converter.ejb;
    import java.math.BigDecimal;
    import javax.ejb.Remote;
    @Remote
    public interface Converter {
        public BigDecimal dollarToYen(BigDecimal dollars);
        public BigDecimal yenToEuro(BigDecimal yen);
    }The bean code is
    // file ConverterBean
    package converter.ejb;
    import java.math.BigDecimal;
    import javax.ejb.Stateless;
    @Stateless
    public class ConverterBean implements converter.ejb.Converter {
        private BigDecimal euroRate = new BigDecimal("0.0070");
        private BigDecimal yenRate = new BigDecimal("112.58");
        public BigDecimal dollarToYen(BigDecimal dollars) {
            BigDecimal result = dollars.multiply(yenRate);
            return result.setScale(2, BigDecimal.ROUND_UP);
        public BigDecimal yenToEuro(BigDecimal yen) {
            BigDecimal result = yen.multiply(euroRate);
            return result.setScale(2, BigDecimal.ROUND_UP);
    }It's been deployed successfully with NetBeans on Glassfish app server.
    The commands for compiling and running the client. "c:\java\JEE" is the installation dir for jee.
    c:\java\programs\src javac -d ..  -cp c:\java\JEE\lib\javaee.jar;c:\java\JEE\lib\appserv-rt.jar   ConverterClient.java
    c:\java\programs java -cp c:\java\JEE\lib\javaee.jar;c:\java\JEE\lib\appserv-rt.jar;.  ejb.clients.ConverterClient

  • Ejb-ref errore when deploying a previously working ear on weblogic 8.1

    when deploying an ear module on weblogic 8.1 i get the following error:
    The ejb-link 'CustomessagingBrick.jar/CustomMessaginBrick' declared in ejb-ref
    or ejb-local-ref 'ejb/Service2' in the application module 'cmbrick.war' could
    not be resolved. The target EJB for the ejb ref could not be found.
    The ear is composed of two sub-modules:
    CustomMessaginBrick.jar
    cmbrick.war.
    The same ear was deployed on weblogic 6.1.
    Every reference in the ear seems in the right place so i am really clueless.
    Hereafter i include the relevant portions of the deployment descriptors.
    Thanks in advance!
    Greets,
    Luca
    the web.xml for cmbrick.war contains the following data:
    <ejb-local-ref>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocalHome</local-home>
    <local>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocal</local>
    <ejb-link>CustomMessagingBrick</ejb-link>
    </ejb-local-ref>
    its weblogic.xml file is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
    <weblogic-web-app>
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <jndi-name>Service2</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    </weblogic-web-app>
    while the weblogic-ejb-jar for CustomMessaging bricks contains the following:
    <weblogic-enterprise-bean>
    <ejb-name>CustomMessagingBrick</ejb-name>
    <stateless-session-descriptor>
    <pool>
    </pool>
    <stateless-clustering>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    </transaction-descriptor>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>Service2</jndi-name>
    </weblogic-enterprise-bean>....

    The issue is that WLS 6.1 didn't really support ejb-links properly. An
    ejb-link should allow you to link a webapp or an ejb to another EJB
    without requiring additional information or a global JNDI name on the
    target EJB.
    WLS 8.1 is following your ejb-link and telling you there's not enough
    information.
    You have 2 options:
    1) Remove the <ejb-link>...</ejb-link> from your web.xml. You'll be
    using just an ejb-reference at that point, but you've already included
    the necessary information in the weblogic.xml that we can locate the EJB
    via its global jndi-name
    or
    2) Change the ejb-link to be
    <ejb-link>CustomMessaginBrick.jar#CustomMessagingBrick</ejb-link>
    If you wanted to, you could then remove the reference info from the
    weblogic.xml
    -- Rob
    luca wrote:
    when deploying an ear module on weblogic 8.1 i get the following error:
    The ejb-link 'CustomessagingBrick.jar/CustomMessaginBrick' declared in ejb-ref
    or ejb-local-ref 'ejb/Service2' in the application module 'cmbrick.war' could
    not be resolved. The target EJB for the ejb ref could not be found.
    The ear is composed of two sub-modules:
    CustomMessaginBrick.jar
    cmbrick.war.
    The same ear was deployed on weblogic 6.1.
    Every reference in the ear seems in the right place so i am really clueless.
    Hereafter i include the relevant portions of the deployment descriptors.
    Thanks in advance!
    Greets,
    Luca
    the web.xml for cmbrick.war contains the following data:
    <ejb-local-ref>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocalHome</local-home>
    <local>com.hutchison3g.core.brick.custom.messaging.CustomMessagingBrickLocal</local>
    <ejb-link>CustomMessagingBrick</ejb-link>
    </ejb-local-ref>
    its weblogic.xml file is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
    <weblogic-web-app>
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>ejb/Service2</ejb-ref-name>
    <jndi-name>Service2</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    </weblogic-web-app>
    while the weblogic-ejb-jar for CustomMessaging bricks contains the following:
    <weblogic-enterprise-bean>
    <ejb-name>CustomMessagingBrick</ejb-name>
    <stateless-session-descriptor>
    <pool>
    </pool>
    <stateless-clustering>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    </transaction-descriptor>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>Service2</jndi-name>
    </weblogic-enterprise-bean>....

  • Unable to access  Remote EJB with jndi.properties in classpath

    Hi
    I'm trying to use remote interfaces with my adf web layer.
    Created remote datacontrol for my model part and my model EAR is deployed in another Oracle App Server instance(S1).
    My web layer is deployed in another Oracle App Server(S2). My page def uses the remote interfaces.
    Following are the files which are needed to have ejb ref entry.
    ---- orion-web.xml ----
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <orion-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.xsd"
    schema-major-version="10" schema-minor-version="0"
    servlet-webdir="/servlet/" >
    <ejb-ref-mapping name="MySessionEJB" location="MySessionEJB"
    remote-server-ref="true"
    jndi-properties-file="jndi.properties"></ejb-ref-mapping>
    </orion-web-app>
    --- web.xml ---
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
    <description>Empty web.xml file for Web Application</description>
    <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
    </context-param>
    <context-param>
    <param-name>oracle.adf.view.faces.USE_APPLICATION_VIEW_CACHE</param-name>
    <param-value>true</param-value>
    </context-param>
    <context-param>
    <param-name>CpxFileName</param-name>
    <param-value>com.home.view.DataBindings</param-value>
    </context-param>
    <filter>
    <filter-name>PCF</filter-name>
    <filter-class>oracle.webcache.adf.filter.FacesPageCachingFilter</filter-class>
    </filter>
    <filter>
    <filter-name>adfBindings</filter-name>
    <filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
    </filter>
    <filter>
    <filter-name>adfFaces</filter-name>
    <filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>PCF</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
    <filter-name>adfBindings</filter-name>
    <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>adfBindings</filter-name>
    <url-pattern>*.jspx</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>adfFaces</filter-name>
    <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>adfFaces</filter-name>
    <url-pattern>*.jspx</url-pattern>
    </filter-mapping>
    <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>AFCStatsServlet</servlet-name>
    <servlet-class>oracle.webcache.adf.servlet.AFCStatsServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>resources</servlet-name>
    <servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>resources</servlet-name>
    <url-pattern>/adf/*</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>1</session-timeout>
    </session-config>
    <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
    </mime-mapping>
    <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
    <jsp-config/>
    <ejb-ref>
    <ejb-ref-name>MySessionEJB</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <remote>com.home.model.MySessionEJBRemote</remote>
    <ejb-link>MySessionEJB</ejb-link>
    </ejb-ref>
    </web-app>
    and this jndi.properties file in placed in the WEB-INF/classes folder.
    java.naming.factory.initial=oracle.j2ee.rmi.RMIInitialContextFactory
    java.naming.security.principal=oc4jadmin
    java.naming.security.credentials=welcome123
    java.naming.provider.url=opmn:ormi://S1:6003:Test_Instance/test-ejb
    The same web application if I run it in Jdeveloper its able to open the welcome.jspx which calls the remote EJB method on load. But when I deploy it Oracle Server 10.1.3.1.0 the error "500 Internal Server Error" shows up and in log file following exception can be found
    avax.faces.el.EvaluationException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg
    =JBO-29000: Unexpected exception caught: javax.naming.NameNotFoundException, msg=MySessionEJB not found
    Seems like the jndi properties is ignored during the Context creation for lookup.
    Please advice where I'm missing the configuration.

    http://docs.sun.com/source/819-0079/dgjndi.html

  • Ejb-ref element references to other beans

    Hello,
    Can anyone tell me what ejb references to other beans are for? (ejb-ref element).
    I am completely missing the point and would be grateful if someone could tell me why I should have the overhead of writing this:
    <ejb-ref>
    <ejb-ref-name>ejb/waUserMgr</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>com.reuters.pds.webapp.bl.user.api.WAUserMgrHome</home>
    <remote>com.reuters.pds.webapp.bl.user.api.WAUserMgr</remote>
    <ejb-link>WAUserMgrEJB</ejb-link>
    </ejb-ref>
    Any comment welcome..
    Julien.

    Hi,
    The <ejb-ref> element is optional, you could use the actual JNDI name instead.
    The advantage with using <ejb-ref> is that, if you deploy the bean on another server, probably with a different JNDI name,
    your code can still continue using the same name as defined by <ejb-ref-name>.
    Internally, the <ejb-ref-name> will be mapped to the actual JNDI location, maybe using symbolic links.

Maybe you are looking for

  • Workflow Requirement - PO

    Hi I am new to workflow and i am having one requirement. Business Objective: Currently, the buyer can modify the per unit price negotiated with the vendor and input the new value whlie creating a PO. The organization intends to stop this practice and

  • How can I create a NetBoot image using command line tools?

    Is it possible to create a NetBoot image entirely using command line tools? (That is, without using the SystemImageUtility) If so, are there reasonable instructions posted somewhere? I don't believe I can use SystemImageUtility with my current setup,

  • My mac is slow, freezing and has horizontal lines.  How do I fix this?

    Hi, my mac is freezing, slowing down and horizontal lines appear.  How do I fix this?

  • Dynamic VLAN on Access Point using RADIUS

    Hi. I am using a single Cisco 1130AG authenticating to RADIUS on Microsoft IAS (I do NOT have a WLC) I was wondering is it possible to use one flat SSID in my network and then dynamically assign VLANs to users based on matching of RADIUS Policy and R

  • Jndi name conflict found in

    I have received a naming conflict when starting up App Server 7. I am using the Sun Studio Enterprise. The abstract schema name for the entity bean is Billercenter and everywhere else that the bean is referenced is billerCenter. I am thinking that th