Weblogic 12c ignores jndi-name definition. Why ?

Hi all!
I have a Stateless Bean which has a custom JNDI name defined in weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>CompanySFSB</ejb-name>
<stateless-session-descriptor>
<business-interface-jndi-name-map>
<business-remote>model.logic.Company</business-remote>
<jndi-name>ejb/Company</jndi-name>
</business-interface-jndi-name-map>
</stateless-session-descriptor>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
However looking at the JNDI tree the bean is stored as "WLSEARWLSEJB_jarCompanySFSB_Company"
Therefore injecting the EJB as
@EJB(name = "CompanySFSB", mappedName = "ejb/Company")
Is there a way to store the EJB with the JNDI declared in weblogic-ejb-jar.xml ? or by using an annotation in the EJB ?
Thanks
Frank

Hi Frank,
Try this option in your startup script.
-Dweblogic.jndi.retainenvironment=true
Regards,
Kal

Similar Messages

  • WebLogic 12c Global JNDI issue

    I'm using WebLogic to deploy our application and we have a standalone application to invoke remote EJB, so we use global jndi.
    format:
    java:global/[<application-name>]/<module-name>/<bean-name>!<fully-qualified-bean-interface-name>
    Here is some description about the global JNDI
    1.<aplication-name> defaults to the bundle name (.ear file name) without the bundle extension. This can be overridden in application.xml. Also, <application-name> is applicable only if the bean is packaged inside a .ear file.
    2.<module-name> defaults to bundle name (.war or .jar) without the bundle extension. Again, this can be overridden in ejb-jar.xml.
    3.<bean-name> defaults to the unqualified class name of the bean. However, if @Stateful or @Stateless or @Singleton uses the name attribute, then the value specified there will be used as the bean name.
    But when I deploy our ear to webogic by autodeploy, weblogic just doesn't obey this rule, the application-name was generated by weblogic, not from application.xml in ear. This cause our standalone application need to configure the application-name if we want to keep compatible with JBoss 7.
    Why doesn't weblogic use the application-name from application.xml? Is this an issue?

    In the EAR file deployed what is the application-name in application.xml generated by Maven?
    Is <generateApplicationXml>true</generateApplicationXml>?

  • Weblogic 8.1 JNDI name for email session

    I have defined a mail session in the console with the name MyMail how do I
    address this "java:comp/env/MyMail" (which does not work) or "MyMail" when
    calling IntitialContext.lookup.
    TIA
    Jon

    What exception do you see?
    Is your client code a servlet or an external client?

  • A prefix can be included in the EJB JNDI name dynamically?

    In the Stateless annotation, we can specify the mappedName attribute to the EJB JNDI name bind.
    Can we specify a prefix to the mappedName separately?
    For example: We have this:
    @Stateless(mappedName="myEJB")And don't want to do this:
    @Stateless(mappedName="prefix/myEJB")We want to include the prefix in another place in the code dynamically.
    Can we do that??

    jtahlborn wrote:
    eudesf wrote:
    Hello! Thanks for reply!
    As I can't configure programatically, there is any way to configure in an application descriptor, or in another place of the application server?
    The idea is to publish two applications that use the same EJB classes, but in different JNDI namespaces, because we don't want to share the resources. Otherwise, it will result in JNDI name conflicts. The applications works in different contexts and we want to reuse the existing EJB definitions.
    Any suggestion?yes you can do this. ejb 3.0 keeps the features from 2.1, namely all the xml based configuration (although it is now optional). and, the annotations are always overriden by the xml configuration. thus, you can create different deployments with different the same compiled class files. you just need to override the annotation configuration with xml configuration (via ejb-jar.xml or whatever).Yes, we can do that. I've tested here, and it works. But, can we do better?
    The configuration via XML implies maintenance, and it's not good, because we have so many EJBs to maintain.
    And there is another problem... The EJB classes are in JARs, and these JARs are shared across the applications.
    Pretend that you have to maintain two versions of each EJB JAR. One with XML configured and other without. If we change one, the another must be changed too. How can it be productive?
    I have seen some EJB implementations that are more flexible with JNDI naming.
    See:
    - [http://openejb.apache.org/jndi-names.html|http://openejb.apache.org/jndi-names.html]
    - [http://fixunix.com/weblogic/221782-dynamic-jndi-name-weblogic-ejb-jar-xml.html|http://fixunix.com/weblogic/221782-dynamic-jndi-name-weblogic-ejb-jar-xml.html]
    Does it have a better solution in Glassfish?

  • Weblogic 12c fails with defaultResponseDestination already bound

    The stack trace is as follows:
    Unable to deploy EJB: ATT_RNM_MDB from interface-ejb-jar.jar:
    DefaultResponseDestination is already bound
      Caused By: javax.naming.NameAlreadyBoundException: DefaultResponseDestination is already bound; remaining name 'app/ejb/interface-ejb-jar/jar/#ATT_RNA_MDB/comp/env/jms'
    We have an ear- ATT_JMS_Interface which has 2 MDBs- ATT_RNM_MDB and ATT_RNA_MDB. Both are pointing to the same defaultResponseDestination queue as mentioned in the weblogic-ejb-jar.xml below:
    weblogic-enterprise-bean>
      <ejb-name>ATT_RNA_MDB</ejb-name>
      <resource-description>
      <res-ref-name>jms/DefaultResponseConnectionFactory</res-ref-name>
      <jndi-name>weblogic.jms.XAConnectionFactory</jndi-name>
      </resource-description>
      <resource-env-description>
    <resource-env-ref-name>jms/DefaultResponseDestination</resource-env-ref-name>
      <jndi-name>com.amdocs.att.jms.rnmResponseQueue</jndi-name>
      </resource-env-description>
      <dispatch-policy>WorkManager-RNX</dispatch-policy>
      </weblogic-enterprise-bean>
      <weblogic-enterprise-bean>
      <ejb-name>ATT_RNM_MDB</ejb-name>
      <resource-description>
      <res-ref-name>jms/DefaultResponseConnectionFactory</res-ref-name>
      <jndi-name>weblogic.jms.XAConnectionFactory</jndi-name>
      </resource-description>
      <resource-env-description>
      <resource-env-ref-name>jms/DefaultResponseDestination</resource-env-ref-name>
      <jndi-name>com.amdocs.att.jms.rnmResponseQueue</jndi-name>
      </resource-env-description>
      <dispatch-policy>WorkManager-RNX</dispatch-policy>
      </weblogic-enterprise-bean>
    NOTE: This works perfectly fine on weblogic 10.3.3

    Try to clean the weblogic server cache directory located under Servers\XXXServer\cache.
    Restart the weblogic instance and redeploy the applicatioṇ
    Let us know if the issue still persists
    Thanks,
    Vijaya

  • Weblogic 12c fails with exception: DefaultResponseDestination already bound while deploying an ear

    The stack trace is as follows:
    Unable to deploy EJB: ATT_RNM_MDB from interface-ejb-jar.jar:
    DefaultResponseDestination is already bound
      Caused By: javax.naming.NameAlreadyBoundException: DefaultResponseDestination is already bound; remaining name 'app/ejb/interface-ejb-jar/jar/#ATT_RNA_MDB/comp/env/jms'
    We have an ear- ATT_JMS_Interface which has 2 MDBs- ATT_RNM_MDB and ATT_RNA_MDB. Both are pointing to the same defaultResponseDestination queue as mentioned in the weblogic-ejb-jar.xml below:
    weblogic-enterprise-bean>
      <ejb-name>ATT_RNA_MDB</ejb-name>
      <resource-description>
      <res-ref-name>jms/DefaultResponseConnectionFactory</res-ref-name>
      <jndi-name>weblogic.jms.XAConnectionFactory</jndi-name>
      </resource-description>
      <resource-env-description>
    <resource-env-ref-name>jms/DefaultResponseDestination</resource-env-ref-name>
      <jndi-name>com.amdocs.att.jms.rnmResponseQueue</jndi-name>
      </resource-env-description>
      <dispatch-policy>WorkManager-RNX</dispatch-policy>
      </weblogic-enterprise-bean>
      <weblogic-enterprise-bean>
      <ejb-name>ATT_RNM_MDB</ejb-name>
      <resource-description>
      <res-ref-name>jms/DefaultResponseConnectionFactory</res-ref-name>
      <jndi-name>weblogic.jms.XAConnectionFactory</jndi-name>
      </resource-description>
      <resource-env-description>
      <resource-env-ref-name>jms/DefaultResponseDestination</resource-env-ref-name>
      <jndi-name>com.amdocs.att.jms.rnmResponseQueue</jndi-name>
      </resource-env-description>
      <dispatch-policy>WorkManager-RNX</dispatch-policy>
      </weblogic-enterprise-bean>
    NOTE: This works perfectly fine on weblogic 10.3.3

    Try to clean the weblogic server cache directory located under Servers\XXXServer\cache.
    Restart the weblogic instance and redeploy the applicatioṇ
    Let us know if the issue still persists
    Thanks,
    Vijaya

  • Weblogic 10.3 - changing jndi-name with deployment plan fails

    I was trying to alter the global jndi name of a stateless ejb by using a deployment plan, but can't get it to work.
    - to be able to replace it later on with a deployment plan, I specify a jndi-name in weblogic-ejb-jar.xml (so I do not use the @mappedName)
    e.g.
    <?xml version="1.0" encoding="UTF-8"?>
    <weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/10.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
         <weblogic-enterprise-bean>
              <ejb-name>ExampleService</ejb-name>
              <enable-call-by-reference>true</enable-call-by-reference>
              <stateless-session-descriptor>
                   <business-interface-jndi-name-map>
                        <business-remote>com.example.ExampleServiceRemote</business-remote>
                        <jndi-name>com.example.ExampleService#com.example.ExampleServiceRemote</jndi-name>
                   </business-interface-jndi-name-map>
              </stateless-session-descriptor>
         </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    - during deployment I specify a deploymentPlan with following content:
    <variable-definition>
    <variable>
    <name>ejb_jndiname_ExampleService</name>
    <value>ExampleService</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>ExampleService.jar</module-name>
    <module-type>ejb</module-type>
    <module-descriptor external="true">
    <root-element>weblogic-ejb-jar</root-element>
    <uri>meta-inf/weblogic-ejb-jar.xml</uri>
    <variable-assignment>
    <name>ejb_jndiname_ExampleService</name>
    <xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/\[ejb-name="ExampleService"\]/stateless-session-descriptor/business-interface-jndi-name-map/\[business-remote="com.example.ExampleServiceRemote"\]/jndi-name</xpath>
    <operation>replace</operation>
    </variable-assignment>
    </module-descriptor>
    </module-override>
    - after deployment, the original jndi-name ("com.example.ExampleService#com.example.ExampleServiceRemote") is active in the jndi tree instead of "ExampleService"
    p.s. When I specified the jndi-name in weblogic-ejb.jar.xml as
         <weblogic-enterprise-bean>
              <ejb-name>ExampleService</ejb-name>
              <enable-call-by-reference>true</enable-call-by-reference>
              <jndi-name>com.example.ExampleService#com.example.ExampleServiceRemote</jndi-name>
         </weblogic-enterprise-bean>
    and the replace in the deployment plan as
    <variable-assignment>
    <name>ejb_jndiname_SecurityService</name>
    <xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/\[ejb-name="ExampleService"\]/jndi-name</xpath>
    <operation>replace</operation>
    </variable-assignment>
    the replacement does work (checked by verifying the jndi-name within the deployed ear using the console), but the problem then is that the jndi-name does not appear in the jndi tree (that's why I tried the <business-interface-jndi-name-map>)
    Any ideas?
    Kind regards,
    Ben
    Edited by: user11230128 on 4-jun-2009 7:42

    After a Service Request and some trial and error, I got it to work after adding the following part in each 'jar module override' section of the deployment plan:
    <module-descriptor external="false">
    <root-element>ejb-jar</root-element>
    <uri>META-INF/ejb-jar.xml</uri>
    </module-descriptor>
    Apparantly this is needed even though there is no ejb-jar.xml in the jar.
    So the deployment plan has to be something like:
    <variable-definition>
    <variable>
    <name>ejb_jndiname_ExampleService</name>
    <value>ExampleService</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>ExampleService.jar</module-name>
    <module-type>ejb</module-type>
    <module-descriptor external="false">
    <root-element>weblogic-ejb-jar</root-element>
    <uri>meta-inf/weblogic-ejb-jar.xml</uri>
    <variable-assignment>
    <name>ejb_jndiname_ExampleService</name>
    <xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/[ejb-name="ExampleService"]/stateless-session-descriptor/business-interface-jndi-name-map/[business-remote="com.example.ExampleServiceRemote"]/jndi-name</xpath>
    <operation>replace</operation>
    </variable-assignment>
    </module-descriptor>
    <module-descriptor external="false">
    <root-element>ejb-jar</root-element>
    <uri>META-INF/ejb-jar.xml</uri>
    </module-descriptor>
    </module-override>
    ...

  • Unable to resolve JNDI DataSource in weblogic 12c When you upgrade web application

    I create a datasource which jndi name is jdbc/allianzB2CDataSource and the target is AdminServer ,and i deploy a web application in AdminServer.In that web application,the code(base on spring framework) is:
    public static DataSource getJndiDataSource(String name) {
      JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
      Properties jndiEnvironment = new Properties();
      jndiEnvironment.put("java.naming.factory.initial",
      "weblogic.jndi.WLInitialContextFactory");
      dsLookup.setJndiEnvironment(jndiEnvironment);
      try {
      dsLookup.setResourceRef(false);
      return dsLookup.getDataSource(name);
      } catch (Exception e) {
      dsLookup.setResourceRef(true);
      return dsLookup.getDataSource(name);
    And the parameter is jdbc/allianzB2CDataSource,everything work fine,but when i restart or upgrate the web application,i got the error like this:
    javax.naming.NameNotFoundException: Unable to resolve 'jdbc.allianzB2CDataSource'. Resolved 'jdbc'; remaining name 'allianzB2CDataSource'
    Unable to resolve 'jdbc.allianzB2CDataSource'. Resolved 'jdbc'; remaining name 'allianzB2CDataSource'

    I create a datasource which jndi name is jdbc/allianzB2CDataSource and the target is AdminServer ,and i deploy a web application in AdminServer.In that web application,the code(base on spring framework) is:
    public static DataSource getJndiDataSource(String name) {
      JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
      Properties jndiEnvironment = new Properties();
      jndiEnvironment.put("java.naming.factory.initial",
      "weblogic.jndi.WLInitialContextFactory");
      dsLookup.setJndiEnvironment(jndiEnvironment);
      try {
      dsLookup.setResourceRef(false);
      return dsLookup.getDataSource(name);
      } catch (Exception e) {
      dsLookup.setResourceRef(true);
      return dsLookup.getDataSource(name);
    And the parameter is jdbc/allianzB2CDataSource,everything work fine,but when i restart or upgrate the web application,i got the error like this:
    javax.naming.NameNotFoundException: Unable to resolve 'jdbc.allianzB2CDataSource'. Resolved 'jdbc'; remaining name 'allianzB2CDataSource'
    Unable to resolve 'jdbc.allianzB2CDataSource'. Resolved 'jdbc'; remaining name 'allianzB2CDataSource'

  • Dynamic jndi-name in weblogic-ejb-jar.xml

    Is there a way to create dynamic (i.e. runtime) jndi-names for EJBs instead of
    (or in addition to) "hard coding" them in the weblogic-ejb-jar.xml file? What
    I'm trying to do is have one WebLogic instance (JVM) host multiple environments
    (our Beta and Training environments) and I simply want to deploy the same .ear
    file twice but have each environment (application - .ear) reference a different
    database schema (jdbc connection pool). I have everything working just fine for
    this scenario except when I define jndi-names for our ejbs. The problem is that
    I am really deploying the same ejbs (jndi-names and actually code base) in each
    applicatoin instance and I get an exception when the WebLogic is trying to deploy
    the second application (.ear) because the jndi-names in it have already been deployed
    by the first application instance. I recieve a jndi error stating that the name
    is already deployed.
    Or is there a better path to go down for what I am trying to do to have one WebLogic
    instance support our beta and training environments? Usually (but not always)
    our code base is the for same for both of these environments, I simply need to
    have each environment use a different database schema.
    Thanks

    A little birdie tells me that BEA does this very thing. Looking at the
    descriptors for WebLogic Portal I see:
    <weblogic-enterprise-bean>
    <ejb-name>LoaderEJB</ejb-name>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>${APPNAME}.BEA_content.LoaderHome</jndi-name>
    </weblogic-enterprise-bean>
    Yes, the ${APPNAME} token really is expanded into the J2EE application
    name at deployment time!
    Sincerely,
    Daniel Selman
    Bryan Dixon wrote:
    Rewriting our build process isn't really much of an option for me. Our current
    build process is too complex and time consuming right now to convert to Ant (we
    eventually will do this but not for a while). So are there any other ideas that
    aren't build related?
    Thanks
    "Eric Ma" <[email protected]> wrote:
    You don't need run-time dynamism in JDNI names and it can't be done anyways.
    You
    need token substitution in XML configuration files when building the
    app. If
    you are using Ant for building, then it is a breeze. If not, first convert
    your
    build process to use Ant.
    Also, a single WLS instance hosting multiple environments sounds really
    INTRIGUING
    to me.
    Eric Ma
    "Bryan Dixon" <[email protected]> wrote:
    Is there a way to create dynamic (i.e. runtime) jndi-names for EJBsinstead
    of
    (or in addition to) "hard coding" them in the weblogic-ejb-jar.xml file?
    What
    I'm trying to do is have one WebLogic instance (JVM) host multiple environments
    (our Beta and Training environments) and I simply want to deploy the
    same .ear
    file twice but have each environment (application - .ear) referencea
    different
    database schema (jdbc connection pool). I have everything working just
    fine for
    this scenario except when I define jndi-names for our ejbs. The problem
    is that
    I am really deploying the same ejbs (jndi-names and actually code base)
    in each
    applicatoin instance and I get an exception when the WebLogic is trying
    to deploy
    the second application (.ear) because the jndi-names in it have already
    been deployed
    by the first application instance. I recieve a jndi error stating that
    the name
    is already deployed.
    Or is there a better path to go down for what I am trying to do to have
    one WebLogic
    instance support our beta and training environments? Usually (but not
    always)
    our code base is the for same for both of these environments, I simply
    need to
    have each environment use a different database schema.
    Thanks

  • Unable to connect to JNDI name- weblogic 9.2 datasource defined though

    I have these parameters done in weblogic 9.2-1. Created a JNDI name
    2. Have DB URL and driver ready/ class names and everything (created using JDBC create datasource).
    Problem
    I am using this code to test the connection-
    package com.gs;
    // Code to look up a datasource object for getting database connection
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.naming.InitialContext;
    import javax.naming.Context;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    public class TestConnection {
    public TestConnection() throws NamingException, SQLException{
    Connection connection =null;
    // Create the initial context. No JNDI properties are to be supplied here
    Context initialContext = new InitialContext();
    DataSource dataSource = null; // datasource object
    // Look up the datasource using the logical name specified in the ejb-location tag in data-sources.xml
    // You must always cast or narrow the object that JNDI returns to the DataSource, because the
    // JNDI lookup() method returns a Java object.
    dataSource = (DataSource)initialContext.lookup("GTA");
    // Establishing db connection
    connection = dataSource.getConnection();
    System.out.println("Test Successful");
    I am unable to view results as a java file. Plz help me to establish a connection with GTA JNDI name.
    I don't think I need to specify jndi name in .xml files
    Thanks,

    I have these parameters done in weblogic 9.2-1. Created a JNDI name
    2. Have DB URL and driver ready/ class names and everything (created using JDBC create datasource).
    Problem
    I am using this code to test the connection-
    package com.gs;
    // Code to look up a datasource object for getting database connection
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.naming.InitialContext;
    import javax.naming.Context;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    public class TestConnection {
    public TestConnection() throws NamingException, SQLException{
    Connection connection =null;
    // Create the initial context. No JNDI properties are to be supplied here
    Context initialContext = new InitialContext();
    DataSource dataSource = null; // datasource object
    // Look up the datasource using the logical name specified in the ejb-location tag in data-sources.xml
    // You must always cast or narrow the object that JNDI returns to the DataSource, because the
    // JNDI lookup() method returns a Java object.
    dataSource = (DataSource)initialContext.lookup("GTA");
    // Establishing db connection
    connection = dataSource.getConnection();
    System.out.println("Test Successful");
    I am unable to view results as a java file. Plz help me to establish a connection with GTA JNDI name.
    I don't think I need to specify jndi name in .xml files
    Thanks,

  • Why can't Weblogic 12c find Managed Bean by annotation,which in a jar?

    the detail:
    why can't Weblogic 12c find Managed Bean by annotation,which in a jar?

    Hi,
    I got the same problem with weblogic 12c.
    Somehow this guy got it working by using CDI and creating an empty beans.xml, it did not work for me.
    i found the tricky problem is that should put a empty but include the <beans> tag beans.xml file.
    http://www.coderanch.com/t/562233/JSF/java/WebLogic-Eclipse-Indigo-develop-JSF
    I also tried to skip managedbean and use CDI ( @named ) but then I get some jboss weld exceptions on the value attribute of some jsf components.
    I also saw this post
    Can't seem to get a trivial CDI example to work on Weblogic 12c
    I don't use OEPE very often so I'll need to kick this around a little when I get a chance.
    Just as an out there kind of thought, OEPE does use the split-directory model for deployment by default -- perhaps try adjusting it to use the exploded archive model instead, just as a test to see if it removes the error?
    Right click the server config and select Properties > WebLogic > Publishing > Publish as exploded archive
    It seems like the Virtual Application deployment model of OEPE doesn't support CDI.
    thanks
    Edited by: Edwin Biemond on Dec 28, 2011 10:07 PM
    Edited by: Edwin Biemond on Dec 28, 2011 10:25 PM

  • What is "Replicate JNDI Name In Cluster" equivalent in Weblogic 10.3

    Hi,
    We are migrating one of our application from WL8 and WL10.3 where the existing setup using a non-distributed queue with "Replicate JNDI Name In Cluster" enabled. The cluster has 2 instances Ex: M1 and M2, both of these instances are using the aforesaid non-distributed queue which is tragetted only to M1 instance.
    However the queue is targetted to M1, JNDI name associated to this Queue is available in M2 server so the MDB and Initial Context lookups are able to obtain the queue instance.
    Now the issue is, we are unable to setup this feature in WL10.
    1. We have created a UDQ and targetted to only M1.
    2. MDBs and Intial context lookups from M2 is failing with NameNotFoundException.
    Ultimatey the requirement is, the application deployed on cluster should consume/publish message only to/from queues available in M1. There is business reason behind this.
    Please help.

    Hi,
    If your MDB is io version 3.0 then u can make use of the following Annotations to define the "*providerUrl*" of the server from where ur MDB wants to listen the messages.
    Example: http://weblogic-wonders.com/weblogic/2010/06/09/mdb-with-non-container-specific-annotations/
    initial-context-factory (Equivalent Property: initialContextFactory)
    provider-url (Equivalent Property: providerURL)
    ActivationConfigProperty(propertyName = “providerURL”, propertyValue = “your_MS1_Address”)
    If you are using MDB2.0 then the same thing u need to do with "weblogic-ejb-jar.xml" file using <provider-url > Tag.
    Thanks
    Jay SenSharma

  • Application deployment order with weblogic-ejb-jar.xml and jndi-name

    I have two applicatation working on Weblogic server v. 10.3.6.
    First of them creating one ejb stateless bean and creates JNDI maping for it (in weblogic-ejb-jar.xml file):
    <weblogic-enterprise-bean>
         <ejb-name>ConfigMenegerBean</ejb-name>
         <stateless-session-descriptor>
         <stateless-session-descriptor>
              <business-interface-jndi-name-map>
              <business-remote>package.ConfigurationSessionRemote</business-remote>
              <jndi-name>ConfigMeneger</jndi-name>
              </business-interface-jndi-name-map>
         </stateless-session-descriptor>
         <enable-call-by-reference>true</enable-call-by-reference>
         <jndi-name>ConfigMeneger</jndi-name>
    </weblogic-enterprise-bean>
    Second appication have to refer for this bean by JNDI using spring been lookup :
    <jee:jndi-lookup id="configManager" jndi-name="ConfigMeneger"/>
    I changed deployment order parameter for both apllication(first=100 and second=500) in order to first app start first and share bean by jndi to another application. Unfortuantelly I got an error :
    javax.naming.NameNotFoundException: Unable to resolve 'ConfigMeneger'. Resolved ''; remaining name 'ConfigMeneger'
    How can I configure deployment order that first application make jndi mapping for bean, before the second application will use it ?

    Ok in a way I have solved my problem (even if I am not completely satisfied by the way on how to proceed...). So thanks to message "JBuilder7.0 and Weblogic6.1" on EJB sun forum :
    http://forum.java.sun.com/thread.jsp?thread=285735&forum=13&message=1255488
    I have tried the following actions (mentionned in the other forum messages):
    - To preserve changes to weblogic*.xml, the safest way is to change the ejb-borland.xml.
    (I am not sure that I have applied this advice correctly, because I suppose that syntax is not similar in weblogic file or borland file).
    And you can MANUALLY update the weblogic file in your JAR archive.
    1. Open the EJB JAR file in Winzip and extract the weblogic-ejb-jar.xml file, so that a copy exists in your
    project directory.
    2. Open this file (in Notepad), add the WebLogic specific information, and then save the file.
    3. Now, when you are finished with the build cycle and are ready to deploy, you may open the EJB jar file
    and swap in the weblogic-ejb-jar.xml file."
    Good Luck.

  • Deployement problem in weblogic 12c and as well as weblogic 10.3.0.0

    Hello All,
    I am newbie to Ejb and weblogic so i need your assist, please help me guys.
    while deploying my jar file into weblogic i got these errors on admin console i.e
    *"An error occurred during activation of changes, please see the log for details.*
    *Exception preparing module: EJBModule(demo) [EJB:011023]An error occurred while reading the deployment descriptor.*
    *The error was: Error processing annotations: .*
    *There are 1 nested errors: weblogic.j2ee.dd.xml.AnnotationProcessException: [EJB:015002]Unable to load class com.ejb.model.MyIntfImpl in Jar F:\Oracle\Middleware\user_projects\domains\phanidevnew\servers\AdminServer\upload\demo.jar : java.lang.ClassNotFoundException: Class bytes found but defineClass()failed for: 'com.ejb.model.MyIntfImpl'*
    *The deployment has been successfully installed. "*
    and in server console displaying like this
    "*<30 Apr, 2012 11:39:02 AM IST> <Warning> <Deployer> <BEA-149004> <Failures were*
    *detected while initiating deploy task for application 'demo'.>*
    *<30 Apr, 2012 11:39:02 AM IST> <Warning> <Deployer> <BEA-149078> <Stack trace fo*
    *r message 149004*
    *weblogic.application.ModuleException: Exception preparing module: EJBModule(demo*
    *[EJB:011023]An error occurred while reading the deployment descriptor. The error*
    *was:*
    *Error processing annotations: .*
    *at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:452)*
    *at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu*
    *leListenerInvoker.java:93)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(Depl*
    *oymentCallbackFlow.java:387)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:58)*
    *Truncated. see log file for complete stacktrace*
    *weblogic.utils.ErrorCollectionException:*
    *There are 1 nested errors:*
    *weblogic.j2ee.dd.xml.AnnotationProcessException: [EJB:015002]Unable to load clas*
    *s com.ejb.model.MyIntfImpl in Jar F:\Oracle\Middleware\user_projects\domains\pha*
    *nidevnew\servers\AdminServer\upload\demo.jar : java.lang.ClassNotFoundException:*
    *Class bytes found but defineClass()failed for: 'com.ejb.model.MyIntfImpl'*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addProcessingError(B*
    *aseJ2eeAnnotationProcessor.java:1264)*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addFatalProcessingEr*
    *ror(BaseJ2eeAnnotationProcessor.java:1269)*
    *at weblogic.ejb.container.dd.xml.EjbAnnotationProcessor.processAnnotatio*
    *ns(EjbAnnotationProcessor.java:172)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processStandard*
    *Annotations(EjbDescriptorReaderImpl.java:324)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyD*
    *escriptorFromJarFile(EjbDescriptorReaderImpl.java:190)*
    *at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJar*
    *File(EjbDescriptorFactory.java:93)*
    *at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule*
    *.java:1198)*
    *at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:380)*
    *at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu*
    *leListenerInvoker.java:93)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(Depl*
    *oymentCallbackFlow.java:387)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:58)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:42)*
    *at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.ja*
    *va:615)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.j*
    *ava:191)*
    *at weblogic.application.internal.SingleModuleDeployment.prepare(SingleMo*
    *duleDeployment.java:16)*
    *at weblogic.application.internal.DeploymentStateChecker.prepare(Deployme*
    *ntStateChecker.java:155)*
    *at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(App*
    *ContainerInvoker.java:60)*
    *at weblogic.deploy.internal.targetserver.operations.ActivateOperation.cr*
    *eateAndPrepareContainer(ActivateOperation.java:197)*
    *at weblogic.deploy.internal.targetserver.operations.ActivateOperation.do*
    *Prepare(ActivateOperation.java:89)*
    *at weblogic.deploy.internal.targetserver.operations.AbstractOperation.pr*
    *epare(AbstractOperation.java:217)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploym*
    *entPrepare(DeploymentManager.java:723)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploy*
    *mentList(DeploymentManager.java:1190)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare*
    *(DeploymentManager.java:248)*
    *at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.pre*
    *pare(DeploymentServiceDispatcher.java:159)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)*
    *at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin*
    *gWorkManagerImpl.java:516)*
    *at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)*
    *at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addProcessingError(B*
    *aseJ2eeAnnotationProcessor.java:1263)*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addFatalProcessingEr*
    *ror(BaseJ2eeAnnotationProcessor.java:1269)*
    *at weblogic.ejb.container.dd.xml.EjbAnnotationProcessor.processAnnotatio*
    *ns(EjbAnnotationProcessor.java:172)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processStandard*
    *Annotations(EjbDescriptorReaderImpl.java:324)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyD*
    *escriptorFromJarFile(EjbDescriptorReaderImpl.java:190)*
    *Truncated. see log file for complete stacktrace*
    *>*
    *<30 Apr, 2012 11:39:02 AM IST> <Error> <Console> <BEA-240003> <Console encounter*
    *ed the following error weblogic.application.ModuleException: Exception preparing*
    *module: EJBModule(demo)*
    *[EJB:011023]An error occurred while reading the deployment descriptor. The error*
    *was:*
    *Error processing annotations: .*
    *at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:452)*
    *at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu*
    *leListenerInvoker.java:93)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(Depl*
    *oymentCallbackFlow.java:387)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:58)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:42)*
    *at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.ja*
    *va:615)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.j*
    *ava:191)*
    *at weblogic.application.internal.SingleModuleDeployment.prepare(SingleMo*
    *duleDeployment.java:16)*
    *at weblogic.application.internal.DeploymentStateChecker.prepare(Deployme*
    *ntStateChecker.java:155)*
    *at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(App*
    *ContainerInvoker.java:60)*
    *at weblogic.deploy.internal.targetserver.operations.ActivateOperation.cr*
    *eateAndPrepareContainer(ActivateOperation.java:197)*
    *at weblogic.deploy.internal.targetserver.operations.ActivateOperation.do*
    *Prepare(ActivateOperation.java:89)*
    *at weblogic.deploy.internal.targetserver.operations.AbstractOperation.pr*
    *epare(AbstractOperation.java:217)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploym*
    *entPrepare(DeploymentManager.java:723)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploy*
    *mentList(DeploymentManager.java:1190)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare*
    *(DeploymentManager.java:248)*
    *at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.pre*
    *pare(DeploymentServiceDispatcher.java:159)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)*
    *at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin*
    *gWorkManagerImpl.java:516)*
    *at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)*
    *at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)*
    *Caused by: weblogic.utils.ErrorCollectionException:*
    *There are 1 nested errors:*
    *weblogic.j2ee.dd.xml.AnnotationProcessException: [EJB:015002]Unable to load clas*
    *s com.ejb.model.MyIntfImpl in Jar F:\Oracle\Middleware\user_projects\domains\pha*
    *nidevnew\servers\AdminServer\upload\demo.jar : java.lang.ClassNotFoundException:*
    *Class bytes found but defineClass()failed for: 'com.ejb.model.MyIntfImpl'*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addProcessingError(B*
    *aseJ2eeAnnotationProcessor.java:1264)*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addFatalProcessingEr*
    *ror(BaseJ2eeAnnotationProcessor.java:1269)*
    *at weblogic.ejb.container.dd.xml.EjbAnnotationProcessor.processAnnotatio*
    *ns(EjbAnnotationProcessor.java:172)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processStandard*
    *Annotations(EjbDescriptorReaderImpl.java:324)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyD*
    *escriptorFromJarFile(EjbDescriptorReaderImpl.java:190)*
    *at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJar*
    *File(EjbDescriptorFactory.java:93)*
    *at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule*
    *.java:1198)*
    *at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:380)*
    *at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu*
    *leListenerInvoker.java:93)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(Depl*
    *oymentCallbackFlow.java:387)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:58)*
    *at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(Dep*
    *loymentCallbackFlow.java:42)*
    *at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.ja*
    *va:615)*
    *at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD*
    *river.java:37)*
    *at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.j*
    *ava:191)*
    *at weblogic.application.internal.SingleModuleDeployment.prepare(SingleMo*
    *duleDeployment.java:16)*
    *at weblogic.application.internal.DeploymentStateChecker.prepare(Deployme*
    *ntStateChecker.java:155)*
    *at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(App*
    *ContainerInvoker.java:60)*
    *at weblogic.deploy.internal.targetserver.operations.ActivateOperation.cr*
    *eateAndPrepareContainer(ActivateOperation.java:197)*
    *at weblogic.deploy.internal.targetserver.operations.ActivateOperation.do*
    *Prepare(ActivateOperation.java:89)*
    *at weblogic.deploy.internal.targetserver.operations.AbstractOperation.pr*
    *epare(AbstractOperation.java:217)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploym*
    *entPrepare(DeploymentManager.java:723)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploy*
    *mentList(DeploymentManager.java:1190)*
    *at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare*
    *(DeploymentManager.java:248)*
    *at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.pre*
    *pare(DeploymentServiceDispatcher.java:159)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)*
    *at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb*
    *ackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)*
    *at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin*
    *gWorkManagerImpl.java:516)*
    *at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)*
    *at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addProcessingError(B*
    *aseJ2eeAnnotationProcessor.java:1263)*
    *at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.addFatalProcessingEr*
    *ror(BaseJ2eeAnnotationProcessor.java:1269)*
    *at weblogic.ejb.container.dd.xml.EjbAnnotationProcessor.processAnnotatio*
    *ns(EjbAnnotationProcessor.java:172)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processStandard*
    *Annotations(EjbDescriptorReaderImpl.java:324)*
    *at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyD*
    *escriptorFromJarFile(EjbDescriptorReaderImpl.java:190)*
    *at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJar*
    *File(EjbDescriptorFactory.java:93)*
    *at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule*
    *.java:1198)*
    *at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:380)*
    *>*
    *My application is*
    *MyIntf:*
    package com.ejb.model;
    import javax.ejb.;
    @Remote
    public interface MyIntf
    public String getMsg();
    *MyIntfImpl:*
    +package com.ejb.model;+
    +import javax.ejb.*;+
    +import javax.annotation.*;+
    +@Stateless(mappedName="demoapp")+
    +public class MyIntfImpl implements MyIntf+
         public String getMsg()
              System.out.println("in getMsg() method" );
              return "Hello I am from getMsg() method" ;
         @PostConstruct
         public void init()
              System.out.println("in init() method" );
         @PreDestroy+
         public void destroy()
         System.out.println("in destroy() method" );
    *persistence.xml in META-INF folder is*
    +<persistence xmlns="http://java.sun.com/xml/ns/persistence"+
    +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"+
    +xsi:schemaLocation="http://java.sun.com/xml/ns/persistence+
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
              <persistence-unit name="myunit" transaction-type="JTA">
              <jta-data-source>myds</jta-data-source>
              </persistence-unit>
              </persistence>
    The above code is compiled fine,
    I create it as demo.jar by using jar -cvf demo.jar com META-INF,
    After that i deployed then i got above errors,
    I deployed same app into glassfish then it works fine with out prob.
    I configured DATA SOURCE properly,
    But why i got these error and solve it..
    Please guys

    Note that WebLogic 12c endorses JavaEE6.
    Look ups and how JNDI works is explained in the JavaEE6 tutorial: http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html

  • Format of the JNDI name for lookup in DataSource

    Hi
    a) I have made a datasource in Weblogic 10.3 called SQL and its JNDI name as jdbc/SQLDS.
    The driver was BEA'S Type 4 Driver for MS SQL Server
    Now I am trying to lookup the datasource through an application. I have used the following
    lines of code:
    InitialContext context = new InitialContext();
    DataSource ds = context.lookup("jdbc/SQLDS");
    Connection conn = ds.getConnection();
    The Application was a success.
    I saw in some articles that you can refer to the datasource by even java:comp/env/jdbc/SQLDS,
    instead of just jdbc/SQLDS. I tried both ways and I was able to run the application.
    b) Then I made another datasource in Weblogic 10.3 called SQL1 and its JNDI name as jdbc/SQL1.
    The driver was MS SQL Server Type 4 Driver for versions 2000, 2005
    Now I am trying to lookup the datasource through an application. I have used the following
    lines of code:
    InitialContext context = new InitialContext();
    DataSource ds = context.lookup("jdbc/SQL1");
    Connection conn = ds.getConnection();
    The Application was a success.
    I saw in some articles that you can refer to the datasource by even java:comp/env/jdbc/SQL1,
    instead of just jdbc/SQL1. I tried the first way and it didnt work. It gave me a NullPointerException
    at the line Connection conn = ds.getConnection();
    c)Then I made a 3rd datasource in Weblogic 10.3 called SQL2 and its JNDI name as jdbc/SQL2DS.
    The driver was MS SQL Server Type 4 Driver for versions 2000, 2005
    Now I am trying to lookup the datasource through an application. I have used the following
    lines of code:
    InitialContext context = new InitialContext();
    DataSource ds = context.lookup("jdbc/SQL2DS");
    Connection conn = ds.getConnection();
    The Application was a success.
    I saw in some articles that you can refer to the datasource by even java:comp/env/jdbc/SQL2DS,
    instead of just jdbc/SQL2DS. I tried the first way and it didnt work. Again, it gave me a NullPointerException
    at the line Connection conn = ds.getConnection();
    I was confused why the 2nd and 3rd way didnt work . Is it becaue I used Microsoft's MS SQL Server Type 4 Driver?
    I have added the jar file in the WEBLOGIC_CLASSPATH. Why is it not recognising java:comp/env/jdbc/SQL2DS ?
    I would be grateful if somebody could give me ideas on this...
    Thanks
    Neeti

    To use application scoped or indirect JNDI lookups (i.e. java:comp/env/...) you usually need to define a &lt;resource-ref&gt; entry in your deployment descriptor(s). Not sure what type of application you are using to test (web-app, EJB,) but for java:comp/env/ lookups to work, you need to define resource references. The fact that your first test succeeded is somewhat strange. Without the resource reference definitions, I would have expected your JNDI lookups to fail with a NamingException instead of the lookup returning NULL for the datasource.
    Assuming you are doing your test from a web-app, you need to add &lt;resource-ref&gt; definitions to your web.xml file similar to the following:
    &lt;resource-ref&gt;
    &lt;res-ref-name&gt;*jdbc/SQL2DS*&lt;/res-ref-name&gt;
    &lt;res-type&gt;java.sql.DataSource&lt;/res-type&gt;
    &lt;res-auth&gt;Container&lt;/res-auth&gt;
    &lt;/resource-ref&gt;
    and then add &lt;reference-descriptor&gt; definitions to your weblogic.xml file similar to the following:
    &lt;reference-descriptor&gt;
    &lt;resource-description&gt;
    &lt;res-ref-name&gt;*jdbc/SQL2DS*&lt;/res-ref-name&gt;
    &lt;jndi-name&gt;*jdbc/SQL2DS*&lt;/jndi-name&gt;
    &lt;/resource-description&gt;
    &lt;/reference-descriptor&gt;
    Once you do these steps your lookup("java:comp/env/jdbc/SQL2DS") should function properly from within your web-app.

Maybe you are looking for