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.

Similar Messages

  • Weblogic.ejb20.locks.LockTimedOutException and pb with weblogic-ejb-jar.xml

    Hello All,
    I get a strange problem when I try to log in to the J2EE application based on EJBs:
    weblogic.ejb20.locks.LockTimedOutException
    I see that I can add an option to the weblogic-ejb-jar.xml file, and I hope that can help for my previous problem:
    <weblogic-enterprise-bean><stateful-session-descriptor>
    <allow-concurrent-calls>true</allow-concurrent-calls>
    </stateful-session-descriptor></weblogic-enterprise-bean>
    But I can not edit the weblogic-ejb-jar.xml file under JBuilder ! the file is probably read-only, but I do not know how to change the property. I can not find this file directly under JBuilder directories.
    So I have tried to open the module.jar that contained this file. I have checked: the file is not read-only. I have modified directly manually the weblogic-ejb-jar.xml file, but now I get this error in Jbuilder when I open the weblogic-ejb-jar.xml file:
    URL: Transformation requires a XSL StyleSheetThe Node does not have a style sheet associated with itEither add a style sheet using the Add stylesheets button on the toolbar or add a valid XSL Processing instruction to the document directly
    In conclusion, what should I do to be able to modify the weblogic-ejb-jar.xml file properly ??

    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.

  • Toplink-ejb-jar.xml config with weblogic-ejb-jar.xml

    Hello,
    To use toplink with EJB's deployed in Weblogic.
    I changed weblogic-ejb-jar.xml :
    (Because, it does not allow me to change <type-identifier> and <type-version> elements)
    <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
    <type-version>7.0</type-version>
    <type-storage>META-INF/toplink-ejb-jar.xml</type-storage>
    Here, is the toplink-ejb-jar.xml:
    (Because, I am asked to give PUBLIC value for Weblogic 8.1.0....)
    <!DOCTYPE toplink-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB RDBMS Persistence//EN" "file://D:/Toplink10g/toplink/config/dtds/toplink-wls-ejb-jar_10_0_3.dtd">
    <toplink-ejb-jar>
    <session>
    <name>myUniqueSession</name>
    <project-xml>META-INF/project.xml</project-xml>
    <login>
    <connection-pool>demoPool</connection-pool>
    </login>
    </session>
    </toplink-ejb-jar>
    1. I have also given full path to the "toplink-wls-ejb-jar_10_0_3.dtd", but I still get parsing error:
    "myBeans.jar": [EJB:011019]While reading META-INF/toplink-ejb-jar.xml, the persistence layer of the Entity EJB failed to deploy. The error was:
    "myBeans.jar": Error in descriptor line 5: Error parsing file at line: 5 column: 18. Element type "toplink-ejb-jar" must be declared..
    2. Also, How I can avoid the full path to the DTD???
    Thanks for your help in this regard!

    You are not properly configured to use TopLink with Weblogic. You need to place the TopLink_CMP_Descriptor.xml install file in your Weblogic lib/persistence directory. Add "TopLink_CMP_Descriptor.xml" to your persistence.install file and then update weblogic-ejb-jar.xml to reference the correct TopLink persistence type and versions, ie,
    <type-identifier>TopLink_CMP_2_0</type-identifier>
    <type-version>10</type-version>
    <type-storage>META-INF/toplink-ejb-jar.xml</type-storage>
    See the TopLink developer guide for more information and configuration details.
    http://download-east.oracle.com/docs/cd/B10464_05/web.904/b10313/pkg_depl.htm#1124524
    Cheers,
    Guy

  • Problem with weblogic-ejb-jar.xml

    while trying to deploy a session bean to Weblogic Server 6.1 it gives a message "encoding not supported".The xml encoding set in weblogic-ejb-jar file by JDeveloper is "windows-1252" which is the cause for error...Can anybody help me on this...
    tia
    monmohan

    You need to use UTF-8 encoding for WebLogic.
    Check out the bea quickstart to learn how to change this.
    http://otn.oracle.com/products/jdev/htdocs/vcmigration/weblogic/content.html

  • Annotation in replacement of weblogic-ejb-jar.xml

    Hi, how do i use the annotation equavlient for WL 10.0 for below elements in weblogic-ejb-jar.xml
    <destination-jndi-name>SeeBeyond.Queues.TestQueue</destination-jndi-name>
    <connection-factory-jndi-name>SeeBeyond.QueueConnectionFactories.QueueConnectionFactory</connection-factory-jndi-name>
    and
    <resource-description>
    <res-ref-name>jms/SeebeyondFactory</res-ref-name>
    <jndi-name>SeeBeyond.QueueConnectionFactories.QueueConnectionFactory</jndi-name>
    </resource-description>
    Thanks.

    The doc here might be of some help:
    http://download.oracle.com/docs/cd/E17904_01/web.1111/e13727/j2ee.htm#CHDJDHCE
    -steve-

  • "Could not locate the bean with the ejb-name XYZ in weblogic-ejb-jar.xml

    Hi,
    Please someone help me on this...
    I'm trying to deploy an application on WLS 8.1 SP4
    on HPUX IA64 arch. From the ear file WLS is able to
    deploy 3 jars but for the last two jars it's throwing
    the below error:
    Could not locate the bean with the ejb-name xyz in weblogic-ejb-jar.xml
    But ejb with name xyz is defined in the the weblogic-ejb-jar.xml file and it's also present in the
    META-INF/ejb-jar.xml file.
    I have no clue what's going wrong.
    Any help is appreciated.
    Thanks
    Mouli

    oops! Pls ignore my previous mail. It was for a different problem.
    FOr the original problem of "couldn ot locate the bean with the ejb-name XZY in weblogic-ejb-jar.xml":
    This happens if you don't have the below files defined
    for a JAR/EAR file:
    weblogic-ejb-jar.xml and weblogic-cmp-rdbms-jar.xml (needed if you have any Datasource mapped)
    These two are basic files required for any JAR/EAR file.
    If you dont' have it already you can generate them using
    $WLS_HOME/bin/startWLBuilder.sh GUI tool bundled along
    with WLS (I used 8.1 SP4) to generate these files ! This tool is really helpful.
    - Mouli

  • Weblogic-ejb-jar.xml generation and editing question with JEE5 / EJB3

    Since EJBGen only works with EJB 2.1, is there a way to auto-generate weblogic-ejb-jar.xml when using a JEE5 ejb module?
    In the tooling like OEPE 11g, an EJB3 project will generate an empty deployment descriptor weblogic-ejb-jar.xml file if you mark it that way in the wizard, but it doesn't populate it with any values.
    Is the weblogic-ejb-jar.xml file is created/edited by hand, do the settings like this example still work or even make sense given the changes in the spec between 2.1 and 3.0?
    <weblogic-enterprise-bean>
    <ejb-name>HelloUser</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>50</max-beans-in-free-pool>
    <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <home-is-clusterable>True</home-is-clusterable>
    <home-load-algorithm>round-robin</home-load-algorithm>
    <stateless-bean-is-clusterable>True</stateless-bean-is-clusterable>
    <stateless-bean-load-algorithm>round-robin</stateless-bean-load-algorithm>
    </stateless-clustering>
    </stateless-session-descriptor>
    <enable-call-by-reference>true</enable-call-by-reference>
    </weblogic-enterprise-bean>
    ........

    Hi,
    For a JEE5 EJB module, rather than using EJBGen, you can use WLS specific annotations for configuring common settings. If you follow the link below, you can see a list of supported EJB annotations. Disregard the fact that the documentation section title is WebLogic Kodo Annotations. That is incorrect and I've filed a bug for it.
    http://edocs.bea.com/wls/docs103/ejb30/annotations.html#wp1438036.
    Unfortunately, we don't yet support setting all weblogic-ejb-jar.xml configuration values via annoations so in some cases a weblogic-ejb-jar.xml is still required.
    You can hand edit your weblogic-ejb-jar.xml and the example you posted below should work fine.
    - Matt

  • Deploy ejb on wls7.0 weblogic.ejb.jar.xml ! help

    Morning !
    i'm try to deploy a EJB on wls7.0
    my descriptor is like this and i don't really undestand what's go wrong.
    thanks you to help
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 7.0.0
    EJB//EN" "http://www.bea.com/servers/wls700/dtd/weblogic700-ejb-jar.dtd" >
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <entity>
    <ejb-name>Compte</ejb-name>
    <bean-home-name>Compte</bean-home-name>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <jndi-name>DataSource</jndi-name>
    </resource-ref>
    <cmp-info>
    <database-map>
    <table>"Compte"</table>
    <column-map>
    <field-name>id</field-name>
    <column-name>"id"</column-name>
    </column-map>
    <column-map>
    <field-name>nomSte</field-name>
    <column-name>"nomSte"</column-name>
    </column-map>
    <column-map>
    <field-name>dateCreation</field-name>
    <column-name>"dateCreation"</column-name>
    </column-map>
    <column-map>
    <field-name>nbEmployes</field-name>
    <column-name>"nbEmployes"</column-name>
    </column-map>
    <column-map>
    <field-name>caSte</field-name>
    <column-name>"caSte"</column-name>
    </column-map>
    <column-map>
    <field-name>descSte</field-name>
    <column-name>"descSte"</column-name>
    </column-map>
    <column-map>
    <field-name>logo</field-name>
    <column-name>"logo"</column-name>
    </column-map>
    <column-map>
    <field-name>id_commercial</field-name>
    <column-name>"id_commercial"</column-name>
    </column-map>
    </database-map>
    <finder>
    <method-signature>findAll()</method-signature>
    <where-clause />
    <load-state>True</load-state>
    </finder>
    </cmp-info>
    </entity>
    <datasource-definitions>
    <datasource>
    <jndi-name>DataSource</jndi-name>
    <url>jdbc:odbc:dev_java</url>
    <username>sa</username>
    <password>lnx.sully</password>
    <driver-class-name>sun.jdbc.odbc.JdbcOdbcDriver</driver-class-name>
    </datasource>
    </datasource-definitions>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    the EXception is !
    Exception
    weblogic.management.ApplicationException: No deployment found at
    E:\bea70\weblogic700\server\bin\GRPEJB.jar.
    at
    weblogic.j2ee.J2EEApplicationContainerFactory.initializeDeployment(J2EEAppli
    cationContainerFactory.java:350)
    at
    weblogic.management.deploy.DeployerRuntime.unprotectedActivate(DeployerRunti
    me.java:350)
    at
    weblogic.management.deploy.DeployerRuntime.access$0(DeployerRuntime.java:282
    at
    weblogic.management.deploy.DeployerRuntime$1.run(DeployerRuntime.java:947)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.management.deploy.DeployerRuntime.checkAndPerformDeployerActions(De
    ployerRuntime.java:941)
    at
    weblogic.management.deploy.DeployerRuntime.activate(DeployerRuntime.java:279
    at java.lang.reflect.Method.invoke(Native Method)
    at
    weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl
    .java:717)
    at
    weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:6
    99)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
    at
    weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerI
    mpl.java:921)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:470)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:198)
    at $Proxy48.activate(Unknown Source)
    at
    weblogic.management.console.actions.mbean.ConfigureAppWizardAction.commit(Co
    nfigureAppWizardAction.java:248)
    at
    weblogic.management.console.actions.mbean.ConfigureAppWizardAction.perform(C
    onfigureAppWizardAction.java:100)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:171)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5360)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2468)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    tahnks you !
    Unimon Thierry
    CGBI- CET-E-services
    69, Blvd Galliéni
    91 Issy les Mlx
    tele :01/55/95/54/22 Poste:5422
    Port :06/61/81/78/59
    Prof : mailto:[email protected]
    Pers : mailto:[email protected]

    oops! Pls ignore my previous mail. It was for a different problem.
    FOr the original problem of "couldn ot locate the bean with the ejb-name XZY in weblogic-ejb-jar.xml":
    This happens if you don't have the below files defined
    for a JAR/EAR file:
    weblogic-ejb-jar.xml and weblogic-cmp-rdbms-jar.xml (needed if you have any Datasource mapped)
    These two are basic files required for any JAR/EAR file.
    If you dont' have it already you can generate them using
    $WLS_HOME/bin/startWLBuilder.sh GUI tool bundled along
    with WLS (I used 8.1 SP4) to generate these files ! This tool is really helpful.
    - Mouli

  • Sample weblogic-ejb-jar.xml for Resource-ref EJB 3.0

    I am trying to create an MDB that can be re-used under different names.
    @MessageDriven(description = "An MDB that transfers messages from one Queue to another", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue") })
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public class TransferMdb implements MessageListener {
    private static final Logger LOG = Logger.getLogger(TransferMdb.class);
    @Resource(name = "jms/connfactory")
    private ConnectionFactory connectionFactory;
    @Resource(name = "jms/targetDestination")
    private Queue targetDestination;
    <ejb-jar version="3.0" 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/ejb-jar_3_0.xsd">
    <enterprise-beans>
    <message-driven>
    <ejb-name>TransferMdb</ejb-name>
    <ejb-class>TransferMdb</ejb-class>
    </message-driven>
    </enterprise-beans>
    </ejb-jar>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>TransferMdb</ejb-name>
    <message-driven-descriptor>
    <pool>
    <max-beans-in-free-pool>200</max-beans-in-free-pool>
    <initial-beans-in-free-pool>5</initial-beans-in-free-pool>
    </pool>
    <destination-jndi-name>test_queue</destination-jndi-name>
    <transaction-descriptor>
    <trans-timeout-seconds>20</trans-timeout-seconds>
    </transaction-descriptor>
    </message-driven-descriptor>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jms/connectionfactory</res-ref-name>
    <jndi-name>connectionfactory</jndi-name>
    </resource-description>
    <resource-description>
    <res-ref-name>jms/targetDestination</res-ref-name>
    <jndi-name>reply_queue</jndi-name>
    </resource-description>
    </reference-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    However when I deploy the above, I get exceptions such as:
    problem: cvc-complex-type.2.4a: Expected elements 'initial-context-factory@http://www.bea.com/ns/weblogic/weblogic-ejb-jar provider-url@http://www.bea.com/ns/weblogic/weblogic-ejb-jar connection-factory-jndi-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar jms-polling-interval-seconds@http://www.bea.com/ns/weblogic/weblogic-ejb-jar jms-client-id@http://www.bea.com/ns/weblogic/weblogic-ejb-jar generate-unique-jms-client-id@http://www.bea.com/ns/weblogic/weblogic-ejb-jar durable-subscription-deletion@http://www.bea.com/ns/weblogic/weblogic-ejb-jar max-messages-in-transaction@http://www.bea.com/ns/weblogic/weblogic-ejb-jar distributed-destination-connection@http://www.bea.com/ns/weblogic/weblogic-ejb-jar use81-style-polling@http://www.bea.com/ns/weblogic/weblogic-ejb-jar init-suspend-seconds@http://www.bea.com/ns/weblogic/weblogic-ejb-jar max-suspend-seconds@http://www.bea.com/ns/weblogic/weblogic-ejb-jar security-plugin@http://www.bea.com/ns/weblogic/weblogic-ejb-jar' instead of 'transaction-descriptor@http://www.bea.com/ns/weblogic/weblogic-ejb-jar' here in element message-driven-descriptor@http://www.bea.com/ns/weblogic/weblogic-ejb-jar:<null>
    problem: cvc-complex-type.2.4a: Expected elements 'transaction-descriptor@http://www.bea.com/ns/weblogic/weblogic-ejb-jar iiop-security-descriptor@http://www.bea.com/ns/weblogic/weblogic-ejb-jar resource-description@http://www.bea.com/ns/weblogic/weblogic-ejb-jar resource-env-description@http://www.bea.com/ns/weblogic/weblogic-ejb-jar ejb-reference-description@http://www.bea.com/ns/weblogic/weblogic-ejb-jar service-reference-description@http://www.bea.com/ns/weblogic/weblogic-ejb-jar enable-call-by-reference@http://www.bea.com/ns/weblogic/weblogic-ejb-jar network-access-point@http://www.bea.com/ns/weblogic/weblogic-ejb-jar clients-on-same-server@http://www.bea.com/ns/weblogic/weblogic-ejb-jar run-as-principal-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar create-as-principal-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar remove-as-principal-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar passivate-as-principal-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar jndi-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar local-jndi-name@http://www.bea.com/ns/weblogic/weblogic-ejb-jar dispatch-policy@http://www.bea.com/ns/weblogic/weblogic-ejb-jar remote-client-timeout@http://www.bea.com/ns/weblogic/weblogic-ejb-jar stick-to-first-server@http://www.bea.com/ns/weblogic/weblogic-ejb-jar' instead of 'reference-descriptor@http://www.bea.com/ns/weblogic/weblogic-ejb-jar' here in element weblogic-enterprise-bean@http://www.bea.com/ns/weblogic/weblogic-ejb-jar:<null>
    at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:234)
    at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:221)
    at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:146)
    at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
    Truncated. see log file for complete stacktrace
    I am clearly missing items in the weblogic-ejb-jar.xml. If anyone has a sample or tips, that would be awesome as a starting point.

    Those tags just declare that you are using our CMP provider and that
    your descriptor is in META-INF/weblogic-cmp-rdbms-jar.xml.
    FWIW, you might also want to check out EJBGen. It tends to keep more up
    to date with WLS than xdoclet.
    -- Rob
    Gen wrote:
    I am using xdoclets to generate descriptor file weblogic-ejb-jar.xml
    for a BMP entity bean. Xdoclet is generating the descriptor file
    alright, but is putting the following extra tags. This happens even
    for samples which come with the download, so my tags in java file are
    not wrong.
    My question is, are the extra tags below harmless, or should I
    manually go to each desciptor file and remove them?
    Thanks.
    ----------- EXTRA TAGS GENERATED START ---------
    persistence> <persistence-type>
    <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
    <type-version>6.0</type-version>
    <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
    </persistence-type>
    <persistence-use>
    <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
    <type-version>6.0</type-version>
    </persistence-use>
    </persistence>
    ----------- EXTRA TAGS GENERATED END ---------
    ----------- TAGS I PUT IN JAVA CLASS START --------
    * @ejb:bean name="com.ejb.entity.Customer"
    * jndi-name="com.ejb.entity.CustomerHome"
    * view-type="remote"
    * type="BMP"
    * primkey-field="com.ejb.entity.CustomerPK"
    * reentrant="false"
    * @weblogic:cache
    * max-beans-in-cache="1000"
    * read-timeout-seconds="900"
    * concurrency-strategy="ReadOnly"
    ----------- TAGS I PUT IN JAVA CLASS END --------

  • Error in stateless-clustering in weblogic-ejb-jar.xml

    Hi,
    This is my <weblogic-ejb-jar.xml> and I see an error in <stateless-bean-is-clusterable>. Can anybody please help me regarding this.
    <?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>Sample1</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <stateless-bean-is-clusterable>TRUE</stateless-bean-is-clusterable>
    </stateless-clustering>
    </stateless-session-descriptor>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>
    <ejb-name>Sample2</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <stateless-bean-is-clusterable>TRUE</stateless-bean-is-clusterable>
    </stateless-clustering>
    </stateless-session-descriptor>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>
    <ejb-name>Sample3</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <stateless-bean-is-clusterable>TRUE</stateless-bean-is-clusterable>
    </stateless-clustering>
    </stateless-session-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    I am using weblogic 10.3 and EJB 3.0 Can I include all the EJBs in a single <weblogic-ejb-jar.xml> file and can I put it in the EAR->EarContent->META-INF folder, where the application.xml and weblogic-application.xml files exist.
    Basically, I am trying to include <initial-beans-in-free-pool> and <stateless-bean-is-clusterable> for each of my EJBs. Since there is no annotation equivalent for them in EJB 3.0, I had to include the <weblogic-ejb-jar.xml> file. I appreciate if anybody can suggest me if there is any annotation equivalent for these.
    Thank you,
    Sowmya

    Hi,
    1. please try with <stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
    2. the EJB Specification requires "The deployment descriptor must be stored with the name META-INF/ejb-jar.xml in the ejb-jar file." So you shouldn't put the weblogic-ejb-jar.xml to EAR's META-INF folder.
    3. <stateless-bean-is-clusterable> has a default value as "true". so you needn't specify it in your weblogic-ejb-jar.xml if you just want to have the "true" value.
    4. default value of <initial-beans-in-free-pool> is 0. Since you're changing the default value, you'll have to specify it in weblogic-ejb-jar.xml. If you can put all EJBs in one ejb jar file, you can have only one weblogic-ejb-jar.xml in the META-INF folder of this ejb jar.
    Thanks,
    Amy

  • Deployment Plan / weblogic-ejb-jar.xml:  Problem

    Hello,
    I am trying to use a deployment plan to override the principal name in the weblogic-ejb-jar.xml.
    The deployment-plan looks like this (showing only the important sections)
    <variable-definition>
    <variable>
    <name>SecurityRoleAssignment_ejbRole_PrincipalNames_1</name>
    <value>MY PRINCIPAL 1</value>
    </variable>
    </variable-definition>
    <variable-assignment>
    <name>SecurityRoleAssignment_ejbRole_PrincipalNames_1</name>
    <xpath>/weblogic-ejb-jar/security-role-assignment/[role-name="View-Role"]/externally-defined</xpath>
    <operation>replace</operation>
    </variable-assignment>
    The security-role assignment in the weblogic-ejb-jar.xml looks like this:
    <security-role-assignment>
    <role-name>View-Role</role-name>
         <externally-defined/>
    </security-role-assignment>
    I 've tried to override the element-value of <externally-defined> (a valid tag in the weblogic-ejb-jar.xml ) with help of a deployment-plan.
    When trying to deploy my application (which is organised in the directory-structure: inst_dir/APP inst_dir/PLAN
    the following error occurs:
    VALIDATION PROBLEMS WERE FOUND problem: cvc-complex-type.2.4a: Expected element 'principal-name@http://www.bea.com/ns/weblogic/10.0' instead of 'externally-defined@http://www.bea.com/ns/weblogic/10.0' here in element security-role-assignment@http://www.bea.com/ns/weblogic/10.0:
    This has surprised me, as externally-defined is (according to the documentation) a valid tag.
    I have tried to replace <externally-defined> with an empty <principal-name> tag (which works fine when deploying the application), but causes a security exception, when trying to use the EJB.
    Has anybody an idea if there is a workaround for this problem?
    IMHO the Validatio Problem is not justified at this place then why should an otherwise valid weblogic-ejb-jar.xml (when not using a deployment-plan) suddenly become invalid when a deployment plan is used?
    Thanx a lot in advance!
    Edited by: user10672779 on 02.12.2008 04:09

    Hi again,
    I tried it with the weblogic 10 Namespace Declaration but got then this error:
    failed to load java type corresponding to e=weblogic-ejb-jar@http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd
    and following Exception:
    <02.12.2008 20.00 Uhr CET> <Error> <J2EE> <BEA-160197> <Unable to load descriptor D:\exportapps\tb.ear\app\tb_flowcontrol.jar/META-INF/weblogic-ejb-jar.xml of module tb_flowcontrol.jar. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
    at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:152)
    at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:292)
    at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:260)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:774)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:395)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:745)
    Caused by: com.bea.xml.XmlException: failed to load java type corresponding to e=weblogic-ejb-jar@http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:329)
    at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:296)
    at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:306)
    at com.bea.staxb.runtime.internal.UnmarshalResult.determineRootType(UnmarshalResult.java:287)
    at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalDocument(UnmarshalResult.java:153)
    at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:65)
    at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:141)
    Searching the net couldn't supply me with another answer as to use the 90 Namespace Declaration again...
    I think I forgot to mention I am using an exploded directory.
    This all seems very strange.
    cheers.

  • Deployment issues, how is weblogic-ejb-jar.xml linked to ejb-jar.xml

    Hey guys,
    I'm getting the following error I think because i have something configured incorrectly in my xml files. Instead of yousing activationConfig properties in my MDB I wanted to set them in the ejb-jar.xml file manually. The following error I'm getting is...
    Unable to deploy EJB: MyMDB from MDBtest2:
    [EJB:011026]The EJB container failed while creating the java:/comp/env namespace for this EJB deployment.
    weblogic.deployment.EnvironmentException: [EJB:010176]The resource-env-ref 'inQueue' declared in the ejb-jar.xml descriptor has no JNDI name mapped to it. The resource-ref must be mapped to a JNDI name using the resource-description element of the weblogic-ejb-jar.xml descriptor.
         at weblogic.ejb.container.deployer.EnvironmentBuilder.addResourceEnvReferences(EnvironmentBuilder.java:641)
         at weblogic.ejb.container.deployer.EJBDeployer.setupEnvironmentContext(EJBDeployer.java:330)
         at weblogic.ejb.container.deployer.EJBDeployer.setupEnvironmentFor(EJBDeployer.java:1097)
         at weblogic.ejb.container.deployer.EJBDeployer.setupBeanInfos(EJBDeployer.java:991)
         at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1273)
         at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:372)
    ejb-jar.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" 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/ejb-jar_2_1.xsd">
         <display-name>MDBtest2</display-name>
         <enterprise-beans>
              <message-driven>
                   <ejb-name>MyMDB</ejb-name>
                   <ejb-class>cms.crown.mdb.MyMDB</ejb-class>
                   <transaction-type>Container</transaction-type>
                   <message-destination-link>omg</message-destination-link>
                   <resource-ref>
                        <res-ref-name>weblogic.jms.XAConnectionFactory</res-ref-name>
                        <res-type>javax.jms.XAConnectionFactory</res-type>
                        <res-auth>Container</res-auth>
                   </resource-ref>
                   <resource-env-ref>
                        <resource-env-ref-name>inQueue</resource-env-ref-name>
                        <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
                   </resource-env-ref>
              </message-driven>
         </enterprise-beans>
         <assembly-descriptor>
              <container-transaction>
                   <method>
                        <ejb-name>MyMDB</ejb-name>
                        <method-name>onMessage</method-name>
                        <method-params>
                             <method-param>javax.jms.Message</method-param>
                        </method-params>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
         </assembly-descriptor>
    </ejb-jar>
    weblogic-ejb-jar.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <wls:weblogic-ejb-jar xmlns:wls="http://www.bea.com/ns/weblogic/10.0" 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/ejb-jar_3_0.xsd http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
    <!--weblogic-version:10.0-->
    <wls:message-destination-descriptor>
    <!--lookup-method:JNDI-->
    <wls:message-destination-name>omg</wls:message-destination-name>
    <wls:destination-jndi-name>inQueue</wls:destination-jndi-name>
    <wls:initial-context-factory>weblogic.jms.XAConnectionFactory</wls:initial-context-factory>
    <wls:provider-url>http://localhost:8010</wls:provider-url>
    </wls:message-destination-descriptor>
    </wls:weblogic-ejb-jar>
    Hope this is readable, thanks for any assistance

    Hi,
    It looks like first thing you are using EJB3 but your XML files are still pointing to version="2.1" and very old.
    <font color=red>
    <ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" 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/ejb-jar_2_1.xsd">
    </font><br>
    *try this: In below "ejb-jar.xml" file*
    QCF = your Connection factory JNDI Name
    TestQ = your Queue JNDI Name
    Transaction Attribute is ByDefault = Required ...so no need to add it here.
    <?xml version='1.0' encoding='UTF-8'?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metadata-complete="true">
    <enterprise-beans>
    <message-driven>
    <ejb-name>MyMDB</ejb-name>
    <mapped-name>TestQ</mapped-name>
    <ejb-class>cms.crown.mdb.MyMDB</ejb-class>
    <messaging-type>javax.jms.MessageListener</messaging-type>
    <transaction-type>Container</transaction-type>
    <activation-config>
    <activation-config-property>
    <activation-config-property-name>destinationType</activation-config-property-name>
    <activation-config-property-value><b><font color=maroon>javax.jms.Queue</font></b></activation-config-property-value>
    </activation-config-property>
    <activation-config-property>
    <activation-config-property-name>connectionFactoryJndiName</activation-config-property-name>
    <activation-config-property-value><b><font color=maroon>QCF</font></b></activation-config-property-value>
    </activation-config-property>
    <activation-config-property>
    <activation-config-property-name>destinationJndiName</activation-config-property-name>
    <activation-config-property-value><b><font color=maroon>TestQ</font></b></activation-config-property-value>
    </activation-config-property>
    </activation-config>
    </message-driven>
    </enterprise-beans>
    <assembly-descriptor></assembly-descriptor>
    </ejb-jar>
    "weblogic-ejb-jar.xml":
    <weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd">
    <font color=maroon><b> Now u need to Just define the Provider URL here...if you want a remote provider...else not required<BR> JNDI names are already defined in the ejb-jar.xml file</b></font><BR>
    </weblogic-ejb-jar>
    Some Links which you can refer:
    To Generate the Deployment Descriptors ...in case of EJB3 Applications: *http://jaysensharma.wordpress.com/2010/04/02/generating-ejb3-clientjar/*
    MDB3.0 Sample: *http://jaysensharma.wordpress.com/2009/08/17/mdb3-0-sample-for-weblogic-application-server/*
    Thanks
    Jay SenSharma

  • Deployment plan fails for weblogic-ejb-jar.xml

    FILE FOR PLAN TO ACT ON:
    application.ear\ReferenceTableSession.jar\META-INF\weblogic-ejb-jar.xml
    <?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>referencetablesession</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>100</max-beans-in-free-pool>
    <initial-beans-in-free-pool>0</initial-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    <trans-timeout-seconds>150</trans-timeout-seconds>
    </transaction-descriptor>
    <enable-call-by-reference>true</enable-call-by-reference>
    <jndi-name>XYZ_ejb/ProviderMaintSvc/referencetablesession</jndi-name>
    </weblogic-enterprise-bean>
    <transaction-isolation>
    <isolation-level>TransactionReadCommitted</isolation-level>
    <method>
    <ejb-name>referencetablesession</ejb-name>
    <method-name>*</method-name>
    </method>
    </transaction-isolation>
    </weblogic-ejb-jar>
    DEPLOYMENT PLAN:
    <?xml version='1.0' encoding='utf-8'?>
    <deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd">
    <application-name>application.ear</application-name>
    <variable-definition>
    <variable>
    <name>VAR_referencetablesession</name>
    <value>ejb/ProviderClaimOnlineSvc/referencetablesession</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>ReferenceTableSession.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>VAR_referencetablesession</name>
         <xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/\[ejb-name="referencetablesession"\]/jndi-name</xpath>
    <operation>replace</operation>
    </variable-assignment>
    </module-descriptor>
    </module-override>
    <config-root>servers/AdminServer/upload</config-root>
    </deployment-plan>
    ERROR FROM CONSOLE:
    Message icon - Error An error occurred during activation of changes, please see the log for details.
    Message icon - Error Exception preparing module: EJBModule(ReferenceTableSession.jar) [EJB:011023]An error occurred while reading the deployment descriptor. The error was: Unmarshaller failed.
    Message icon - Error Bean already exists: "[email protected]f2(/WeblogicEnterpriseBeans[referencetablesession])"
    ERROR FROM LOG:
    <Oct 2, 2009 1:08:25 PM CDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor servers/ms34/tmp/_WL_user/ProviderClaimOnlineSvc/y1anoa/ReferenceTableSession.jar/META-INF/weblogic-ejb-jar.xml of module ReferenceTableSession.jar. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
    at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:152)
    at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.mergeDescriptorBeanWithPlan(AbstractDescriptorLoader2.java:703)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:776)
    at weblogic.ejb.spi.EjbJarDescriptor.parseWeblogicEjbJarBean(EjbJarDescriptor.java:160)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWLEjbJarXMLWithSchema(EjbDescriptorReaderImpl.java:719)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.parseWLDD(EjbDescriptorReaderImpl.java:541)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWeblogicEjbJarXML(EjbDescriptorReaderImpl.java:380)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyDescriptorFromJarFile(EjbDescriptorReaderImpl.java:191)
    at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJarFile(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(ModuleListenerInvoker.java:93)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
    at weblogic.deploy.internal.targetserver.operations.RedeployOperation.createAndPrepareContainer(RedeployOperation.java:98)
    at weblogic.deploy.internal.targetserver.operations.RedeployOperation.doPrepare(RedeployOperation.java:122)
    Thanks,
    Rob
    Edited by: user11337024 on Oct 5, 2009 2:31 PM

    FILE FOR PLAN TO ACT ON:
    application.ear\ReferenceTableSession.jar\META-INF\weblogic-ejb-jar.xml
    <?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>referencetablesession</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>100</max-beans-in-free-pool>
    <initial-beans-in-free-pool>0</initial-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    <trans-timeout-seconds>150</trans-timeout-seconds>
    </transaction-descriptor>
    <enable-call-by-reference>true</enable-call-by-reference>
    <jndi-name>XYZ_ejb/ProviderMaintSvc/referencetablesession</jndi-name>
    </weblogic-enterprise-bean>
    <transaction-isolation>
    <isolation-level>TransactionReadCommitted</isolation-level>
    <method>
    <ejb-name>referencetablesession</ejb-name>
    <method-name>*</method-name>
    </method>
    </transaction-isolation>
    </weblogic-ejb-jar>
    DEPLOYMENT PLAN:
    <?xml version='1.0' encoding='utf-8'?>
    <deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd">
    <application-name>application.ear</application-name>
    <variable-definition>
    <variable>
    <name>VAR_referencetablesession</name>
    <value>ejb/ProviderClaimOnlineSvc/referencetablesession</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>ReferenceTableSession.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>VAR_referencetablesession</name>
         <xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/\[ejb-name="referencetablesession"\]/jndi-name</xpath>
    <operation>replace</operation>
    </variable-assignment>
    </module-descriptor>
    </module-override>
    <config-root>servers/AdminServer/upload</config-root>
    </deployment-plan>
    ERROR FROM CONSOLE:
    Message icon - Error An error occurred during activation of changes, please see the log for details.
    Message icon - Error Exception preparing module: EJBModule(ReferenceTableSession.jar) [EJB:011023]An error occurred while reading the deployment descriptor. The error was: Unmarshaller failed.
    Message icon - Error Bean already exists: "[email protected]f2(/WeblogicEnterpriseBeans[referencetablesession])"
    ERROR FROM LOG:
    <Oct 2, 2009 1:08:25 PM CDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor servers/ms34/tmp/_WL_user/ProviderClaimOnlineSvc/y1anoa/ReferenceTableSession.jar/META-INF/weblogic-ejb-jar.xml of module ReferenceTableSession.jar. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
    at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:152)
    at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.mergeDescriptorBeanWithPlan(AbstractDescriptorLoader2.java:703)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:776)
    at weblogic.ejb.spi.EjbJarDescriptor.parseWeblogicEjbJarBean(EjbJarDescriptor.java:160)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWLEjbJarXMLWithSchema(EjbDescriptorReaderImpl.java:719)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.parseWLDD(EjbDescriptorReaderImpl.java:541)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWeblogicEjbJarXML(EjbDescriptorReaderImpl.java:380)
    at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyDescriptorFromJarFile(EjbDescriptorReaderImpl.java:191)
    at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJarFile(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(ModuleListenerInvoker.java:93)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
    at weblogic.deploy.internal.targetserver.operations.RedeployOperation.createAndPrepareContainer(RedeployOperation.java:98)
    at weblogic.deploy.internal.targetserver.operations.RedeployOperation.doPrepare(RedeployOperation.java:122)
    Thanks,
    Rob
    Edited by: user11337024 on Oct 5, 2009 2:31 PM

  • Failed to load weblogic-ejb-jar.xml

    Hi,
    I try to deploy an EJB on Weblogic 9.1, but the weblogic-ejb-jar seems to cause this exception :
    ======================================================
    [wlappc] <30 oct. 2006 12 h 13 CET> <Error> <J2EE> <BEA-160187> <weblogic.appc failed to compile your application. Recompile with the -verbose option for more details. Please see the error message(s) below.>
    [wlappc] com.bea.xml.XmlException: failed to load java type corresponding to e=weblogic-ejb-jar@http://www.bea.com/ns/weblogic/910
    [wlappc] at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:325)
    [wlappc] at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:292)
    [wlappc] at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:302)
    [wlappc] at com.bea.staxb.runtime.internal.UnmarshalResult.determineRootType(UnmarshalResult.java:283)
    [wlappc] at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalDocument(UnmarshalResult.java:153)
    [wlappc] at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:65)
    [wlappc] at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:138)
    [wlappc] at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:271)
    [wlappc] at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:240)
    [wlappc] at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:300)
    [wlappc] at weblogic.application.descriptor.AbstractDescriptorLoader.createDescriptor(AbstractDescriptorLoader.java:344)
    [wlappc] at weblogic.application.descriptor.CachingDescriptorLoader.createDescriptor(CachingDescriptorLoader.java:188)
    [wlappc] at weblogic.application.descriptor.AbstractDescriptorLoader.createDescriptor(AbstractDescriptorLoader.java:328)
    [wlappc] at weblogic.application.descriptor.AbstractDescriptorLoader.getDescriptor(AbstractDescriptorLoader.java:237)
    [wlappc] at weblogic.application.descriptor.AbstractDescriptorLoader.getRootDescriptorBean(AbstractDescriptorLoader.java:217)
    [wlappc] at weblogic.ejb.spi.EjbJarDescriptor.parseWeblogicEjbJarBean(EjbJarDescriptor.java:171)
    [wlappc] at weblogic.ejb.container.dd.xml.DDUtils.processWLEjbJarXMLWithSchema(DDUtils.java:706)
    [wlappc] at weblogic.ejb.container.dd.xml.DDUtils.parseWLDD(DDUtils.java:535)
    [wlappc] at weblogic.ejb.container.dd.xml.DDUtils.createDescriptorFromJarFile(DDUtils.java:358)
    [wlappc] at weblogic.ejb.container.dd.xml.DDUtils.createReadOnlyDescriptorFromJarFile(DDUtils.java:141)
    [wlappc] at weblogic.ejb.container.ejbc.EJBCompiler.parseDescriptors(EJBCompiler.java:1345)
    [wlappc] at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:431)
    [wlappc] at weblogic.application.compiler.AppcUtils.compileEJB(AppcUtils.java:292)
    [wlappc] at weblogic.application.compiler.EJBCompiler.compile(EJBCompiler.java:95)
    [wlappc] at weblogic.application.compiler.flow.AppCompilerFlow.compileInput(AppCompilerFlow.java:113)
    [wlappc] at weblogic.application.compiler.flow.AppCompilerFlow.compile(AppCompilerFlow.java:43)
    [wlappc] at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:55)
    [wlappc] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
    [wlappc] at weblogic.application.compiler.FlowDriver.run(FlowDriver.java:24)
    [wlappc] at weblogic.application.compiler.Appc.runBody(Appc.java:151)
    [wlappc] at weblogic.utils.compiler.Tool.run(Tool.java:158)
    [wlappc] at weblogic.utils.compiler.Tool.run(Tool.java:115)
    ======================================================
    Here is my weblogic-ejb-jar.xml file :
    ======================================================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/910"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://www.bea.com/ns/weblogic/910
              http://www.bea.com/ns/weblogic/910/weblogic-ejb-jar.xsd">
    <weblogic-enterprise-bean>
    <ejb-name>MyMDB</ejb-name>
    <message-driven-descriptor>
         <resource-adapter-jndi-name>ActiveMQRA</resource-adapter-jndi-name>
         <connection-factory-jndi-name>myQCF</connection-factory-jndi-name>
    </message-driven-descriptor>
    <resource-description>
    <res-ref-name>jms/factory</res-ref-name>
    <jndi-name>myQCF</jndi-name>
    </resource-description>
    <resource-env-description>
    <resource-env-ref-name>jms/queue</resource-env-ref-name>
    <jndi-name>queue.out</jndi-name>
    </resource-env-description>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    ======================================================
    So, it looks like this problem : http://forums.bea.com/bea/message.jspa?messageID=600018030&tstart=0
    I just need a confirmation :
    - is the "res-ref-name" format incorrect with '/' character ?
    - is the jndi-name format incorrect with '.' character ?
    Else, what is the problem with this DD ?
    Thanks,
    Rudy

    "shubha" <[email protected]> wrote:
    >
    hi ,
    Ejb with ejb-name 'hellobean' in ejb-jar.xml
    should be specified in weblogic-ejb-jar.xml with <weblogic-enterprise-bean></weblogic-enterprise-bean>
    i am having problem in deploying the most simple bean on wls7.0 .
    when i try to open the bean module with the weblogic builder i get the
    following
    message
    weblogic.ejb20.WLDeploymentException: Could not locate bean with ejb-name
    'hellobean'
    in weblogic-ejb-jar.xml
         at weblogic.ejb20.deployer.CompositeMBeanDescriptor.initialize60(CompositeMBeanDescriptor.java:249)
         at weblogic.ejb20.deployer.CompositeMBeanDescriptor.init(CompositeMBeanDescriptor.java:180)
         at weblogic.ejb20.deployer.CompositeMBeanDescriptor.<init>(CompositeMBeanDescriptor.java:171)
         at weblogic.marathon.model.EJBJarCMBean.setup(EJBJarCMBean.java:408)
         at weblogic.marathon.tasks.OpenModuleTask.figureOutModule(OpenModuleTask.java:76)
         at weblogic.marathon.tasks.OpenModuleTask.figureOutModule(OpenModuleTask.java:109)
         at weblogic.marathon.tasks.OpenModuleTask.runBackground(OpenModuleTask.java:64)
         at weblogic.jellybeans.core.task.TaskThread.execute(TaskThread.java:114)
         at weblogic.jellybeans.core.task.TaskThread.run(TaskThread.java:55)
    Could not locate bean with ejb-name 'hellobean' in weblogic-ejb-jar.xml
    Module hello1 descriptors failed to load
    if anyone has come across the same problem and have debugged it please
    help me
    out
    thanks in advance

  • Storing ejb-jar.xml and weblogic-ejb-jar.xml

    We are using Weblogic Integration 9.2 on a 2 cluster system sharing the same domain directory.
    1) I am wondering if I can store these files somewhere in the domains directory instead of the EJB's archive - call it MyEjb.jar?
    2) Are there any benefits to storing these files outside of the MyEjb.jar file? I am thinking to make it easier to update the configurations such as number of MDB consumers and such to avoid having to recreate the MyEjb.jar with the new config and redeploy the application. A simple text edit and bounce could be fine if the files can be stored outside.
    2b) Can another application in the same domain read these files to find out the connection factory and queue information?
    3) Are there any disadvantages to storing those files outside of the jar file? One issue I can think of here is how to deal with them on a cluster environment.
    4) Any other feedback apprecaited.

    If you look at the contents of a deployment plan (Plan.xml) when you have it generated
    <deployment-plan ...>
      <module-override>
        <module-name>ejb.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>
        </module-descriptor>
        <module-descriptor external="false">
          <root-element>ejb-jar</root-element>
          <uri>META-INF/ejb-jar.xml</uri>
        </module-descriptor>
        <module-descriptor external="true">
          <root-element>persistence-configuration</root-element>
          <uri>META-INF/persistence-configuration.xml</uri>
        </module-descriptor>
        <module-descriptor external="false">
          <root-element>persistence</root-element>
          <uri>META-INF/persistence.xml</uri>
        </module-descriptor>
      </module-override>
    </deployment-plan>You can see which files can be external and which can be not. The weblogic-ejb-jar.xml can be external
    but in this case you need a deployment plan to point weblogic to the file. The ejb-jar.xml cannot be
    external (see external=false)
    The benefit of storing the weblogic-ejb-jar.xml is that your administrator can fine tune certain
    configurations by using a deployment plan, instead of having to extract the contents from the jar file
    and then repackage it again.
    No need to worry about a clustered environment, you can place the jar and the deployment plan
    on the server where the admin server is located, when you deploy an application you deploy it to
    the cluster and everything is taken care off.
    More information on deployment plans can be found here: http://download.oracle.com/docs/cd/E11035_01/wls100/deployment/config.html

Maybe you are looking for