Ejb-link jndi issue

Hi,
I am trying to hook up a web service that talks to one of my EJBs. I feel that
I have followed the instructions to the letter, but no matter what I do I keep
getting a ServletException when I try to deploy it.
The EJB I am trying to invoke is deployed in an ejb module called SunstartEJBModule
which is deployed within an application called SunstartApplication.
This is the build file I am using:
<project name="buildWebservice" default="generate-typeinfo">
<target name="generate-typeinfo">
<source2wsdd
     javaSource="sunstart/ejbs/webservices/StudentWS.java"
     ejbLink="SunstartEJBModule.jar#ejb/StudentWS"
     ddFile="ddfiles/web-services.xml"
     serviceURI="/StudentService"
/>
</target>
<target name="generate-webservice">
<wspackage
output="ears/SunstartApplication.ear"
contextURI="web_services"
webAppClasses="com.sun.ad.sunstart.ejbs.webservices.StudentWS"
ddFile="ddfiles/web-services.xml"
overwrite="false"
/>
</target>
</project>
The SunstartWS ejb is definitely deployed as I can access it using my ServiceLocator
using java:comp/env/ejb/StudentWS. I notice in the server error log it is trying
to use a slightly different JNDI name to this - java:/app/ejb/SunstartEJBModule.jar#ejb/StudentWS/home
but I can't see how I can control this in the ant script because whenever I remove
the "SunstartEJBModule.jar#ejb/StudentWS" part and change it to "ejb/StudentWS"
it won't even deploy.
The full exception trace I am seeing is:
javax.servlet.ServletException: ERROR: The EJB component named: StudentWS specified
an ejb-link to SunstartEJBModule.jar#ejb/StudentWS, but this ejb-link could not
be found in JNDI. Please ensure that this ejb-link refers to a valid EJB, and
this EJB has already deployed. The exception was: javax.naming.NamingException:
Could not lookup EJB home, tried java:/app/ejb/SunstartEJBModule.jar#ejb/StudentWS/home
and java:/app/ejb/SunstartEJBModule.jar#ejb/StudentWS/localhome
     at weblogic.webservice.server.servlet.WebServiceServlet.initLocal(WebServiceServlet.java:132)
     at weblogic.webservice.server.servlet.WebServiceServlet.init(WebServiceServlet.java:86)
     at javax.servlet.GenericServlet.init(GenericServlet.java:258)
     at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:993)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
     at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:869)
     at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
     at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
     at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
     at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3197)
     at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
     at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5647)
     at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:869)
     at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2022)
     at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2063)
     at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
     at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
     at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
     at weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDeployer.java:2399)
     at weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.java:2311)
     at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2479)
     at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
     at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
     at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
     at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
     at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
     at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>
If anyone know what I Am doing wrong I would be grateful if they would let me
know as this has been driving me nuts over the past few days!
Cheers,
Lucas.

Here is am working example of how to use source2wsdd
with an EJB.
http://manojc.com/?sample10
Please check if this works ok for you.
Regards,
-manoj
http://manojc.com
"Lucas King" <[email protected]> wrote in message
news:40d9b346$1@mktnews1...
>
Hi,
I am trying to hook up a web service that talks to one of my EJBs. I feelthat
I have followed the instructions to the letter, but no matter what I do Ikeep
getting a ServletException when I try to deploy it.
The EJB I am trying to invoke is deployed in an ejb module calledSunstartEJBModule
which is deployed within an application called SunstartApplication.
This is the build file I am using:
<project name="buildWebservice" default="generate-typeinfo">
<target name="generate-typeinfo">
<source2wsdd
javaSource="sunstart/ejbs/webservices/StudentWS.java"
ejbLink="SunstartEJBModule.jar#ejb/StudentWS"
ddFile="ddfiles/web-services.xml"
serviceURI="/StudentService"
/>
</target>
<target name="generate-webservice">
<wspackage
output="ears/SunstartApplication.ear"
contextURI="web_services"
webAppClasses="com.sun.ad.sunstart.ejbs.webservices.StudentWS"
ddFile="ddfiles/web-services.xml"
overwrite="false"
/>
</target>
</project>
The SunstartWS ejb is definitely deployed as I can access it using myServiceLocator
using java:comp/env/ejb/StudentWS. I notice in the server error log it istrying
to use a slightly different JNDI name to this -java:/app/ejb/SunstartEJBModule.jar#ejb/StudentWS/home
but I can't see how I can control this in the ant script because wheneverI remove
the "SunstartEJBModule.jar#ejb/StudentWS" part and change it to"ejb/StudentWS"
it won't even deploy.
The full exception trace I am seeing is:
javax.servlet.ServletException: ERROR: The EJB component named: StudentWSspecified
an ejb-link to SunstartEJBModule.jar#ejb/StudentWS, but this ejb-linkcould not
be found in JNDI. Please ensure that this ejb-link refers to a valid EJB,and
this EJB has already deployed. The exception was:javax.naming.NamingException:
Could not lookup EJB home, triedjava:/app/ejb/SunstartEJBModule.jar#ejb/StudentWS/home
and java:/app/ejb/SunstartEJBModule.jar#ejb/StudentWS/localhome
atweblogic.webservice.server.servlet.WebServiceServlet.initLocal(WebServiceSer
vlet.java:132)
atweblogic.webservice.server.servlet.WebServiceServlet.init(WebServiceServlet.
java:86)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
atweblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubI
mpl.java:993)
atweblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubjec
t.java:317)
atweblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
atweblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java
:869)
atweblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.ja
va:848)
atweblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.jav
a:787)
atweblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletC
ontext.java:3252)
atweblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServlet
Context.java:3197)
atweblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServle
tContext.java:3174)
atweblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletConte
xt.java:5647)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:869)
atweblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2
022)
atweblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.jav
a:2063)
atweblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activat
eContainer(SlaveDeployer.java:2592)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
atweblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.jav
a:2317)
atweblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDep
loyer.java:2399)
atweblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.ja
va:2311)
atweblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDep
loyer.java:2479)
atweblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeplo
yer.java:798)
atweblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.ja
va:507)
atweblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.j
ava:465)
atweblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.ja
va:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>
If anyone know what I Am doing wrong I would be grateful if they would letme
know as this has been driving me nuts over the past few days!
Cheers,
Lucas.

Similar Messages

  • Error Deploying Application - ejb-link or jndi-name

    I get the following error when depoying my J2EE application. Can anyone help ?
    Deployment failed on Server MServer1
    weblogic.management.DeploymentException:
    Exception:weblogic.management.ApplicationException: activate failed for Supplier
         Module: Supplier     Error: weblogic.management.DeploymentException: Could not setup environment - with nested exception:
    [weblogic.deployment.EnvironmentException: ejb-ref ejb/ReceiverSes requires an ejb-link or jndi-name]
    weblogic.deployment.EnvironmentException: ejb-ref ejb/ReceiverSes requires an ejb-link or jndi-name
         at weblogic.deployment.EnvironmentBuilder.addEJBReferences(EnvironmentBuilder.java:473)
         at weblogic.servlet.internal.CompEnv.init(CompEnv.java:123)
         at weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:5616)
         at weblogic.servlet.internal.WebAppServletContext.setActive(WebAppServletContext.java:5588)
         at weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:841)
         at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
         at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
         at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
         at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
         at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
         at weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDeployer.java:2399)
         at weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.java:2311)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2479)
         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
         at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    --------------- nested within: ------------------
    weblogic.management.DeploymentException: Could not setup environment - with nested exception:
    [weblogic.deployment.EnvironmentException: ejb-ref ejb/ReceiverSes requires an ejb-link or jndi-name]
         at weblogic.servlet.internal.CompEnv.init(CompEnv.java:133)
         at weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:5616)
         at weblogic.servlet.internal.WebAppServletContext.setActive(WebAppServletContext.java:5588)
         at weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:841)
         at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
         at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
         at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
         at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
         at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
         at weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDeployer.java:2399)
         at weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.java:2311)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2479)
         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
         at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

    I found the issue. The below entries were missing from weblogic.xml
    <ejb-reference-description>
    <ejb-ref-name>ejb/PipelineExecutor</ejb-ref-name>
    <jndi-name>${APPNAME}.BEA_personalization.PipelineExecutor</jndi-name>
    </ejb-reference-description>
    "rohit" <[email protected]> wrote:
    >
    Does anyone knows why we would get the below error. I verified the web.xml
    and
    it seems to be right. Any help appreciated. Rohit
    <Jul 1, 2003 5:08:12 PM PDT> <Error> <Deployer> <149231> <The slave deployer
    was
    unable to set the activation state to true for the application portalApp
    weblogic.management.ApplicationException: activate failed forceoportal
    Module Name: ceoportal, Error: weblogic.j2ee.DeploymentException: Could
    not setu
    p environment - with nested exception:
    [weblogic.deployment.EnvironmentException: ejb-ref ejb/PipelineExecutor
    requires
    an ejb-link or jndi-name]
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContai
    ner.java:1093)
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContai
    ner.java:1022)
    at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForA
    llApplications(SlaveDeployer.java:617)
    at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.j
    ava:376)
    at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resum
    e(DeploymentManagerServerLifeCycleImpl.java:235)
    at weblogic.t3.srvr.ServerLifeCycleList.resume(ServerLifeCycleList.java:
    65)
    at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:832)
    at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:300)
    at weblogic.Server.main(Server.java:32)

  • 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.

  • Error: Unresolved ejb-link :

    I want to call a session bean from a servlet.while deploying i am getting the error
    Error: Unresolved <ejb-link>:
    I am using Netbeans 6.0 IDE. here i am posting my code.
    Calling code in servlet :
    Context ctx = new InitialContext();
    Object objref = ctx.lookup("java:comp/env/ejb/Etrack");
    testBean=(MyHome)PortableRemoteObject.narrow(objref,MyHome.class);
    web.xml :
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
    <servlet-name>MyClientServlet</servlet-name>
    <servlet-class>MyClientServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>MyClientServlet</servlet-name>
    <url-pattern>/MyClientServlet</url-pattern>
    </servlet-mapping>
    <ejb-local-ref>
    <ejb-ref-name>ejb/Etrack</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>MyHome</local-home>
    <local>MyRemote</local>
    <ejb-link>Etrack</ejb-link>
    </ejb-local-ref>
    <session-config>
    <session-timeout>
    30
    </session-timeout>
    </session-config>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    </web-app>
    My ejb-jar.xml :
    <?xml version="1.0"?>
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
    <ejb-jar>
    <enterprise-beans>
    <session>
    <display-name>Etrack Bean</display-name>
    <ejb-name>Etrack</ejb-name>
    <local-home>MyHome</local-home>
    <local>MyRemote</local>
    <ejb-class>MyEjbClass</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <ejb-local-ref>
    <ejb-ref-name>ejb/Etrack</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>MyHome</local-home>
    <local>MyRemote</local>
    <ejb-link>Etrack</ejb-link>
    </ejb-local-ref>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>Etrack</ejb-name>
    <method-intf>Local</method-intf>
    <method-name>*</method-name>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    My sun-ejb-jar.xml :
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 EJB 2.1//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_2_1-1.dtd">
    <sun-ejb-jar>
    <enterprise-beans>
    <ejb>
    <ejb-name>Etrack</ejb-name>
    <stateless-session-descriptor>
    <bean-pool>
    <steady-pool-size>10</steady-pool-size>
    <resize-quantity>10</resize-quantity>
    <max-pool-size>100</max-pool-size>
    <pool-idle-timeout-in-seconds>600</pool-idle-timeout-in-seconds>
    </bean-pool>
    </stateless-session-descriptor>
    <jndi-name>ejb/Etrack</jndi-name>
    <pass-by-reference>true</pass-by-reference>
    <ejb-ref>
    <ejb-name>Etrack</ejb-name>
    <ejb-ref-name>ejb/Etrack</ejb-ref-name>
    <jndi-name>ejb/Etrack</jndi-name>
    </ejb-ref>
    </ejb>
    </enterprise-beans>
    </sun-ejb-jar>
    Can anyone help me in resolving this issue.It will be a great help for me.Thanks in advance

    You could always try removing the ejb-link, and see if the container can inject a reference in the runtime environment (accessible using jndi java:comp/env/ejb/Etrack).
    If it doesn't, check these:
    1) http://www.redhat.com/docs/manuals/rhaps/jonas-guide/ch-beans-ejbref.html
    2) the ejb 2.0 spec, which the original poster was using (although this is the same in 2.1 and 3.0), states the folowing:
    +20.3.2 Application Assembler&rsquo;s responsibilities+
    The Application Assembler can use the ejb-link element in the deployment descriptor to link an*
    EJB reference to a target enterprise bean.*
    The Application Assembler specifies the link between two enterprise beans as follows:*
    +&bull; The Application Assembler uses the optional ejb-link element of the ejb-ref or+
    ejb-local-ref element of the referencing enterprise bean. The value of the ejb-link*
    element is the name of the target enterprise bean. (It is the name defined in the ejb-name element*
    of the target enterprise bean.) The target enterprise bean can be in any ejb-jar file in the*
    same J2EE application as the referencing application component.*
    +&bull; Alternatively, to avoid the need to rename enterprise beans to have unique names within an+
    entire J2EE application, the Application Assembler may use the following syntax in the*
    ejb-link element of the referencing application component. The Application Assembler*
    specifies the path name of the ejb-jar file containing the referenced enterprise bean and*
    appends the ejb-name of the target bean separated from the path name by # . The path name*
    is relative to the referencing application component jar file. In this manner, multiple beans with*
    the same ejb-name may be uniquely identified when the Application Assembler cannot*
    change ejb-names.*
    +&bull; The Application Assembler must ensure that the target enterprise bean is type-compatible with+
    the declared EJB reference. This means that the target enterprise bean must be of the type indicated*
    in the ejb-ref-type element, and that the home and component interfaces of the target*
    enterprise bean must be Java type-compatible with the interfaces declared in the EJB*
    reference.*
    The following illustrates an ejb-link in the deployment descriptor.*
    +...+
    *+<enterprise-beans>+*
    *+<session>+*
    +...+
    *+<ejb-name>EmployeeService</ejb-name>+*
    *+<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>+*
    +...+
    *+<ejb-ref>+*
    *+<ejb-ref-name>ejb/EmplRecord</ejb-ref-name>+*
    *+<ejb-ref-type>Entity</ejb-ref-type>+*
    *+<home>com.wombat.empl.EmployeeRecordHome</home>+*
    *+<remote>com.wombat.empl.EmployeeRecord</remote>+*
    *+<ejb-link>EmployeeRecord</ejb-link>+*
    *+</ejb-ref>+*
    +...+
    *+</session>+*
    +...+
    *+<entity>+*
    *+<ejb-name>EmployeeRecord</ejb-name>+*
    *+<home>com.wombat.empl.EmployeeRecordHome</home>+*
    *+<remote>com.wombat.empl.EmployeeRecord</remote>+*
    +...+
    *+</entity>+*
    +...+
    *+</enterprise-beans>+*
    +...+
    The Application Assembler uses the ejb-link element to indicate that the EJB reference &ldquo;Empl-*
    Record&rdquo; declared in the EmployeeService enterprise bean has been linked to the EmployeeRecord*
    enterprise bean.</stro
    The following example illustrates using the ejb-link element to indicate an enterprise bean reference*
    to the ProductEJB enterprise bean that is in the same J2EE application unit but in a different ejb-jar*
    file.*
    *+<entity>+*
    +...+
    *+<ejb-name>OrderEJB</ejb-name>+*
    *+<ejb-class>com.wombat.orders.OrderBean</ejb-class>+*
    +...+
    *+<ejb-ref>+*
    *+<ejb-ref-name>ejb/Product</ejb-ref-name>+*
    *+<ejb-ref-type>Entity</ejb-ref-type>+*
    *+<home>com.acme.orders.ProductHome</home>+*
    *+<remote>com.acme.orders.Product</remote>+*
    *+<ejb-link>../products/product.jar#ProductEJB</ejb-link>+*
    *+</ejb-ref>+*
    +...+
    *+</entity>+*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Creating Ejb link to another Weblogic server

    I am trying to create a EJB jndi link to another weblogic server from a weblogic
    server.
    Basically I have a web application that uses an EJB that is deploed on another
    weblogic server and I would like to connect to it.
    One way I can do is the remote lookup using the Hashtable and the context factory,
    something like this
    Hashtable props = new Hashtable();
    props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    props.put(Context.PROVIDER_URL, "t3://localhost:7001/");
    Context context = new InitialContext(props);
    I used a jndi-link in resin previously, that did not require me to do a remote
    lookup and rather created a link at the server level and allowed me to do a direct
    InitialContext() lookup.
    <jndi-link>
    <jndi-name>java:comp/env/ejb/test</jndi-name>
    <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory>
    <init-param java.naming.provider.url="t3://xx.x.x.x:7001"/>
    <jndi-lookup>ejb.test</jndi-lookup>
    </jndi-link>
    Can I do something similar in Weblogic? If yes, how can I do it.
    Appreciate your help.
    Thanks,
    Varun

    "Varun Garg" <[email protected]> wrote:
    >
    I am trying to create a EJB jndi link to another weblogic server from
    a weblogic
    server.
    Basically I have a web application that uses an EJB that is deploed on
    another
    weblogic server and I would like to connect to it.
    One way I can do is the remote lookup using the Hashtable and the context
    factory,
    something like this
    Hashtable props = new Hashtable();
    props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    props.put(Context.PROVIDER_URL, "t3://localhost:7001/");
    Context context = new InitialContext(props);
    I used a jndi-link in resin previously, that did not require me to do
    a remote
    lookup and rather created a link at the server level and allowed me to
    do a direct
    InitialContext() lookup.
    <jndi-link>
    <jndi-name>java:comp/env/ejb/test</jndi-name>
    <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory>
    <init-param java.naming.provider.url="t3://xx.x.x.x:7001"/>
    <jndi-lookup>ejb.test</jndi-lookup>
    </jndi-link>
    Can I do something similar in Weblogic? If yes, how can I do it.
    Appreciate your help.
    Thanks,
    Varun
    hi,
    Yes, it is possible in weblogic for more info visit this url,
    http://e-docs.bea.com/wls/docs70/ejb/reference.html#1221067
    u have the description of how to use the below tags
    <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
    <provider-url>WeblogicURL:Port</provider-url>
    <indi-name>jndiweb</jndi-name>
    hope it help u
    regards,
    Elango TR

  • Ejb-link not working when i access ejb in different ear

    Hi All
    I am here trying to access ejb's which is in different ear, I am providing ejb-link inside web.xml of war file deployed inside deffirent ear file.
    I am using wls8.1sp5. I tried different combination with elb-link name , but its not working . <ejb-ref>
    <ejb-ref-name>ejb/AuditService</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>com.onstar.audit.ejb.AuditServiceHome</home>
    <remote>com.onstar.audit.ejb.AuditService</remote>
    <ejb-link>ccarenewal.jar#AuditService</ejb-link>
    </ejb-ref>
    <ejb-ref>
         <ejb-ref-name>ejb/AccountService</ejb-ref-name>
         <ejb-ref-type>Session</ejb-ref-type>
         <home>com.onstar.account.ejb.AccountServiceHome</home>
         <remote>com.onstar.account.ejb.AccountService</remote>
         <ejb-link>ccarenewal.jar#AccountService</ejb-link>
         </ejb-ref>
    Exception:weblogic.management.ApplicationException: activate failed for sbwo Module: sbwo Error: weblogic.management.DeploymentException: Could not setup environment - with nested exception: [weblogic.deployment.EnvironmentException: [J2EE:160101]Error: The ejb-link 'ccarenewal.jar#AuditService' declared in the ejb-ref or ejb-local-ref 'ejb/AuditService' in the application module 'accountadj.war' could not be resolved. The target EJB for the ejb-ref could not be found. Please ensure the link is correct.] weblogic.deployment.EnvironmentException: [J2EE:160101]Error: The ejb-link 'ccarenewal.jar#AuditService' declared in the ejb-ref or ejb-local-ref 'ejb/AuditService' in the application module 'accountadj.war' could not be resolved. The target EJB for the ejb-ref could not be found. Please ensure the link is correct. at weblogic.deployment.EnvironmentBuilder.addEJBLinkRef(EnvironmentBuilder.java:658) at weblogic.deployment.EnvironmentBuilder.addEJBReferences(EnvironmentBuilder.java:467) at weblogic.servlet.internal.CompEnv.init(CompEnv.java:123) at weblogic.servlet.internal.WebAppServletContext.activate
    I will appreciate any help.
    Rajiv

    Rob,
    Thanks for your reply.
    Below is all deployment descriptor entries i have(ejb-jar.xml, weblogic-ejb-jar.xml, web.xml, weblogic.xml)
    please correct me if i have wrong entries any where.
    ejb-jar.xml
    ejb-ref>
    <description />
    <ejb-ref-name>ejb/AccountService</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>com.onstar.account.ejb.AccountServiceHome</home>
    <remote>com.onstar.account.ejb.AccountService</remote>
    <ejb-link>AccountService</ejb-link>
    </ejb-ref>
    weblogic-ejb-jar.xml
    <ejb-reference-description>
    <ejb-ref-name>ejb/AccountService</ejb-ref-name>
    <jndi-name>cca/AccountService</jndi-name>
    </ejb-reference-description>
    web.xml
    <ejb-ref>
    <ejb-ref-name>ejb/AccountService</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>com.onstar.account.ejb.AccountServiceHome</home>
    <remote>com.onstar.account.ejb.AccountService</remote>
    <ejb-link>ccarenewal.jar#AccountService</ejb-link>
    </ejb-ref>
    weblogic.xml
    <ejb-reference-description>
    <ejb-ref-name>ejb/AccountService</ejb-ref-name>
    <jndi-name>cca/AccountService</jndi-name>
    </ejb-reference-description>
    I appreciate your help.
    Thanks
    Rajiv

  • Avk w/ ejb-links in different jars

    Hello all,
    I'm trying to use the 1.4.1 AVK and keep running into an issue.
    I have an entity EJB jar and two session EJB jars, each with their own ejb-jar.xml.
    In the entity jar's ejb-jar.xml I have:
    =====
    <ejb-name>Mydataobject</ejb-name>
    =====
    For each of the session jars, their ejb-jar.xml has a local reference:
    =====
    <ejb-local-ref id="EJBLocalRef_1">
    <ejb-ref-name>com/mydomain/interfaces/MydataobjectLocalHome</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <local-home>com.mydomain.interfaces.MydataobjectLocalHome</local-home>
    <local>com.mydomain.interfaces.MydataobjectLocal</local>
    <ejb-link>Mydataobject</ejb-link>
    </ejb-local-ref>
    =======
    Now, everything I've read regarding the EJB2.1 spec (specifically section 20.3.2) says this is how you can do this as long as all the jars are within the same application. So how come the AVK keeps coming failing with:
    ========
    Error: No enterprise bean matching [ Mydataobject ] found within [ com.mydomain.session.ejb.<SessionOne or SessionTwo> ] JAR file.
    Assertion:
    EJB Link element test. Please refer to EJB 2.1 Specification Section #20.3.2 for further information.
    Test Name:
    tests.ejb.elements.EjbLinkElement
    ========
    thanks, very confused.
    -D

    Try to consolidate the Session and Entity Beans into a single jar containing the consolidated ejb-jar.xml file having implementations for both Session and Entity.

  • 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-link is still required when using local references?

    Hi!
    In BEA's link (http://e-docs.bea.com/wls/docs81/ejb/DDreference-ejb-jar.html#1114738) there is the following comment for weblogic-ejb-jar.xml element 'jndi-name':
    "Assigning a JNDI name to a bean is not recommended. Global JNDI names generate heavy multicast traffic during clustered server startup. See Using EJB Links for the better practice."
    Since we're using local references (local-jndi-name) to access our ejbs instead of remote references, is this still recommendation still pertinent?
    Thanks
    Christianne

    It is enough if you add the ejb-ref & ejb-link in the session bean. The
    session will look up relative to java:comp/env
    The following doc shows an example of accessing an ejb from a web app using
    ejb-link.
    http://e-docs.bea.com/wls/docs81/webapp/components.html#146848
    --Sathish
    <Christianne Carvalho> wrote in message news:[email protected]..
    I'm not getting very well how the ejb-link is used. In my case I have
    entity beans that are referenced in session beans.
    In my entity beans I have the following XDoclet tag.
    * @ejb.bean
    * name="ProductDescription"
    * display-name="ProductDescription"
    * jndi-name="ejb/ProductDescription"
    * local-jndi-name="ejb/ProductDescriptionLocal"
    * view-type="local"
    * type="CMP"
    In my session bean I'm currently getting the reference for the entity bean
    using the following code:
    productDescriptionLocalHome=(ProductDescriptionLocalHome)
    lookupLocalHome(ProductDescriptionLocalHome.JNDI_NAME);
    If I add the following XDoclet tag to my session bean, in ejb-jar.xml a
    <ejb-link> is created inside <ejb-local_ref> tag.
    * @ejb.ejb-ref ejb-name="ProductDescription" view-type="local"
    Considering the info above:
    1) In the entity bean, is there any extra tag to define the ejb-link or is
    the ejb-link only defined in the session bean?
    2) Re session bean, only adding the @ejb-ref xdoclet tag is enough for
    using the ejb-link or do I also have to change my lookup? If I do, what do
    I have to search for in the lookup?
    Thanks!

  • [J2EE:160167] uses ejb-links but no EJB modules

    Dear All
    Seeking support/assistance to resolve the below problem. I'm using laster Jdeveloper 11g software publish in 2011.
    weblogic.deployment.EnvironmentException: [J2EE:160167]The module abc-ViewController-context-root in application abc_Project1_abc uses ejb-links but no EJB modules were found for this application
    Please provide guidelines why this appears and how to resolve it.
    Best Regards
    Shahebaz Shaikh

    The module abc-ViewController-context-root in application abc_Project1_abc uses ejb-links but no EJB modules were found for this application
    Is the application deployed as an EAR application with web and ejb modules? If not, deploy as an EAR application.

  • Fail to lookup the local EJB by JNDI in Managed Server

    Hi all,
    I currently in a deep problem, and can't figure out the cause of it. It just annoying me for week.
    In my app, I have binded to the local ejb to JNDI (let's say "ejb/CustomerLocal"), then the client lookup the Local EJB by the following code.
    localIc = new InitialContext();
    home = (EJBLocalHome)localIc.lookup("ejb/CustomerLocal");
    It works well as I do development in the Domain Admin Server. However, when I do the System Integration Test and deploy my app to the managed server, the app fail. It just can't do the Local EJB lookup. Following is the exception.
    javax.naming.NameNotFoundException: Unable to resolve 'ejb/CustomerLocal' Resolved ejb[Root exc
    eption is javax.naming.NameNotFoundException: Unable to resolve 'ejb.CustomerLocal' Resolved ejb
    ]; remaining name CustomerLocal'
    Does anybody know the cause of it and have solution?
    Thanks a lot

    Hi,
    Just now I replicated the same problem what you are facing. I created one managed server. When I deployed my ejb to admin server I did not get any problem. But when I deploy the same into my managed server I got Naming Exception. Because I did n/t specify Context.PROVIDER_URL. A provider URL contains bootstrap server information that the initial context factory can use to obtain an initial context. So when you deploy EJB on another server, you have to get the Naming service from that server. Hence provider URL must pointing to that server. So I included following statements before lookup my ejb in managed server.
    Properties p=new Properties ();
    p.put (Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    p.put (Context.PROVIDER_URL,"t3://localhost: 7003");
    Context ctx=new InitialContext (p);
    FacadeHome home=(FacadeHome) ctx.lookup ("ejb/CustomerLocal");
    In my case managed server port number is 7003. Now onwards managed server (Port number 7003) will provide ‘Naming Service’, not by admin server (port number 7001), which is default.
    Note: Context.PROVIDER_URL— specifies the URL of the WebLogic Server that provides the name service. The default is t3://localhost: 7001. When you are not specified it will assume that POVIDER_URL is t3://localhost: 7001 this is nothing but your admin server in your case. However, a JNDI client may need to access a name space other than the one identified in its environment. In this case, it is necessary to explicitly set the java.naming.provider.url (provider URL) property used by the InitialContext constructor.
    I hope it helps.
    Regards,
    Kuldeep Singh.

  • How to rename a EJB's jndi name?

    Using Sun Appserver, having deployed all EJBs, I want to rename a EJB's jndi name, for instance,
    to rename object "java:comp/env/ejb/User" to "java:comp/env/ejb/User1". By using InitialContext.rename(oldName,newName), a NamingException is thrown and its message is "java:comp namespace cannot be modified ". How to solve it?

    It is not possible.
    Prohibited by the EJB spec.

  • Glassfish MDB JNDI Issue

    I'm unable to locate the Connection factory for JMS queue of a MBD deployed in Glassfish. Any help is appreciated. Thanks.
    static javax.naming.InitialContext ic;
    queueConnectionFactory = (QueueConnectionFactory)ic.lookup("corbaname:iiop:127.0.0.1:3700#jms/HealthMDBDestinationFactory");The following is the error message:
    NamingException: javax.naming.NameNotFoundException [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
    Using the same InitialContext object, I am able to locate a Session EJB in the same server.
    Object ref = ic.lookup("corbaname:iiop:" + ipAddr + ":" + portNum + "#ejb/AppServerHealth");When I deploy the MDB, do I also need to manually configure the JMS Queue as well?
    In the sun-ejb-jar.xml, the JNDI are there, but I can't see the names when looking at the application server's JNDI tree.
    <ejb>
          <ejb-name>HealthMDBBean</ejb-name>
          <jndi-name>jms/HealthMDBBean</jndi-name>
          <mdb-connection-factory>
            <jndi-name>jms/HealthMDBDestinationFactory</jndi-name>
          </mdb-connection-factory>
          <bean-pool>
            <steady-pool-size>4</steady-pool-size>
            <max-pool-size>6</max-pool-size>
          </bean-pool>
        </ejb>
        <message-destination>
          <message-destination-name>HealthMDBDestination</message-destination-name>
          <jndi-name>jms/HealthMDBBean</jndi-name>
        </message-destination>I am trying to post a message to the queue of a MDB bean from a standalone Java client.

    Thanks.
    Yes, the entry focuses on Remote EJB lookup, but you can use the same approach to look up anything in the appserver's naming context. This is what I am trying to do and it does not work. To lookup a Glassfish Remote EJB from a Java standalone client application, you need to use the CORBA Interoperable Naming Syntax.
    So, I am trying to lookup the ConnectionFactory with
    queueConnectionFactory = (QueueConnectionFactory)ic.lookup("corbaname:iiop:127.0.0.1:3700#jms/HealthMDBDestinationFactory");
    The key is to instantiate the appserver's naming context. That happens automatically when you have our classes in the classpath and you use the no-arg InitialContext. I am am doing this.
        static javax.naming.InitialContext ic;
    public static void main(String[] args) {
           try {
               ic  = new javax.naming.InitialContext();   
           } catch (javax.naming.NamingException ex) {
              System.out.println("NamingException: " + ex);
           } I am using the same context object to lookup a Session EJB in the same server using the Corba syntax and it finds the JNDI name without any problem.
    Object ref = ic.lookup("corbaname:iiop:127.0.0.1:3700#ejb/AppServerHealth");
    Then just use the global JNDI name of the queue or connection factory instead of the Remote EJB.I am passing the JNDI name of the connection factory associated with the MDB. It is not finding the JNDI name and returning an NamingException.
    queueConnectionFactory = (QueueConnectionFactory)ic.lookup("corbaname:iiop:127.0.0.1:3700#jms/HealthMDBDestinationFactory");The MDB is deploying. However, in the sun-ejb-jar.xml, the JNDI names are there, but I can't see the names when looking at the application server's JNDI tree.

  • Ejb-link

    Hi all,
    I am using weblogic 6.1. Whenever i deploy EJBs, i put them in different
    application folders and deploy them as different applications by specifying
    them in config.xml.
    Now, i have two entity beans (say A and B) in two different such
    applications. Now B contains an CMR field of type A. When i write the
    ejb-jar.xml for B, i specify A in the relationship.
    Now the weblogic does't recognise the entry of B in the relationship as it
    is in a different application. SO, i try to give an ejb-ref for the entity
    bean B.
    Now the question, when i define ejb-link tag in the ejb-ref, how do i
    specify the the name of the ejb A in this tag. if my application name "a"
    and the entity bean name is "A", shall i say "a.A" OR "a#A".
    I couldnot find any documents for this. Any help is hightly appreciated.
    Thanks
    Lakshmanan

    For two beans to participate in a relation, both of them must be there in
    the same jar. See ejb-spec.
    So this wouldn't work.
    Rupesh
    Lakshman <[email protected]> wrote in message
    news:[email protected]..
    Hi all,
    I am using weblogic 6.1. Whenever i deploy EJBs, i put them in different
    application folders and deploy them as different applications byspecifying
    them in config.xml.
    Now, i have two entity beans (say A and B) in two different such
    applications. Now B contains an CMR field of type A. When i write the
    ejb-jar.xml for B, i specify A in the relationship.
    Now the weblogic does't recognise the entry of B in the relationship as it
    is in a different application. SO, i try to give an ejb-ref for theentity
    bean B.
    Now the question, when i define ejb-link tag in the ejb-ref, how do i
    specify the the name of the ejb A in this tag. if my application name"a"
    and the entity bean name is "A", shall i say "a.A" OR "a#A".
    I couldnot find any documents for this. Any help is hightly appreciated.
    Thanks
    Lakshmanan

  • Pdf links & dropbox issues

    Hi ,
    I got this problem, some of my hyperlinks (downloadable pdf) are not displayed when i'm testing my site, the new window open but nothing happen
    I wonder, may be its because I've put them in my dropbox in first place ?
    I noticed dropbox link have issues to, link can't be downloaded
    How to do it , link pdf file properly ?
    Thanks

    You don't need to use Dropbox to host your PDFs for download, Muse will do this natively for you.
    >In Deisgn Mode click on the text image, etc thato you want to be your active link to download.
    > In the toolbar at the top of the page click the drop dowb menu next to "Hyperlinks"
    > Scroll down to "Files" section, then to "Link to File" and then navigate on your HD to where your PDF is. This then links that PDF up and when you upload your site to a testing site or to your server, the PDF will be included in the upload to then be downloaded by your users.

Maybe you are looking for