How ejb-jar.xml is Used by ejb Container

Hi,
    Can anyone please explain me about how ejb-jar.xml is Used by ejb Container when a request is sent by a client(ie StandAlone program or a WebService)
Thanks in Advance
Venkat.

Hi Benny,
Nice answer to a self explainig question :-).
Regards,
Daniel
p.s. THX to Sun and J2EE 5 and especially EJB3 (and don't forget about SAP, NWCE is really cool!!!)

Similar Messages

  • How can I validate the ejb-jar.xml against a downloaded ejb-jar_2_1.xsd

    I downloaded all configuration XML file schema,
    so we can point to the schema locally. (To be able to work
    even the network is not there.)
    I tried to change the xmlns, xmlns:xsi and xsi:schemaLocation in the root element of ejb-jar.xml file,
    I can't figure out how to make the server load the local ejb-jar_2_1.xsd file.
    I'll appreciate someone can explain how the xsd file is loaded.
    Thanks
    Zhong

    or use a tool like XMLSpy to validate your ejb-jar.xml against the XSD.
    Cheers!
    Dips

  • How to write multiple ejb-jar.xml file in an ejb module

    i am developing an ejb project. I hav a number of entity beans and session beans and their mapping in ejb-jar.xml. As the number of beans increases the entry of beans and mapping is also increasing. So i want to ask u that is there any mechanism so that i can divide the ejb-jar.xml file so that it will be easy to maintain it.

    ejb-jar is the smallest composable unit for related EJB components. Your best bet is to create multiple ejb-jars and package them within the same enterprise application (.ear).

  • Ejb-jar.xml not using fully qualified class names

    HI,
    I am trying yo upgrade my application from weblogic 8.1 to weblogic 9.2.3. My application has both session and enitybeans. I updated weblogic related jars with 9.x version. But while running ejbgen, i am getting the following exception.
    *[java] weblogic.ejb.container.deployer.DeploymentDescriptorException: Unable to set the transaction attribute for method 'updateService(abcTO)' on EJB 'AbcService'. No matching method could be found. Please verify the method signature specified in the ejb-jar.xml file matches that of your Local interface for this EJB.*
    In ejb-jar.xml file, it is not creating the fully qualified class name for abcTo in <method-param>. In component interface, the method signature is not contaning fully qualified class name for the parameters and return values.
    If i change the signature in the bean with the fully qualified class name of the parameter, the ejb-jar.xml file is creating fine. But there are 100's of signatures i need to change if this is the only solution.
    Can you please advice what i need to change when i upgrade from weblogic 8 to 9 series from session and entity bean's point of view?
    Thanks in Advance
    Naveen.
    Edited by: avn_venki on Mar 16, 2009 7:15 AM
    Edited by: avn_venki on Mar 16, 2009 7:15 AM

    ejb-jar.xml has always required fully-qualified class names. If some vendors have accepted unqualified class names unfortunately that
    behavior is non-portable. Your best bet is to fully-qualify the names. Perhaps you can find some tools to help you given the large
    number of components in your application.

  • 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

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

  • Weblogic-ejb-jar.xml for a Session EJB

    The weblogic-ejb-jar.xml generated for a Session EJB with local interfaces has a jndi-name element instead of local-jndi-name.
    1. Create a Session EJB.
    Select Include Local Interfaces.
    2. In the META-INF directory select New>General>Deployment Descriptors>weblogic-ejb-jar.xml
    The deployment descriptor generated has a jndi-name element.
    For a Session EJB with local interfaces the element should be local-jndi-name.
    thanks,
    Deepak

    weblogic-ejb-jar.xml jndi-name (instead of local-jndi-name) is with JDeveloper version 10.1.2 & 10.1.3

  • How to use multiple ejb-jar.xml files

    Hello -
    If the project you work on has a lot of beans that you need to configure them in one ejb-jar.xml file. Then ejb-jar.xml file will be getting bigger and bigger. I am wondering if there is any way to divide the ejb-jar.xml file into multiple sub ejb-jar.xml files and then combin them together when deploy it. Same question question for the vendor ejb-jar.xml like weblogic-ejb-jar.xml.
    Thanks!
    Ben

    HI Ben,
    No, there is no notion of combining ejb-jar.xmls at deployment time in Java EE. There is no
    set limit on the number of ejb components within an ejb-jar module either.
    --ken                                                                                                                                                                                                                                                                                                                                                                                       

  • 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

  • How to generated weblogic-ejb-jar.xml through Jdeveloper

    I am using JDevloper Studio Edition Version 11.1.1.0.2. My application works fine in OC4J 10.1.3.3.
    Now, I have to deploy my application on the Weblogic 10.3 server.
    My EJB already contains ejb-jar.xml, which has all the descriptions for EJB.
    I want to generate weblogic-ejb-jar.xml files for my EJBs through Jdeveloper, is there any option to do that in IDE?
    Regards
    Edited by: chandan_kk on May 18, 2009 12:41 PM

    Chandan,
    Right-click the project, New...
    Under the General category, choose Deployment Descriptor, then pick Weblogic Deployment Descriptor in the items. You can then choose weblogic-ejb-jar.xml in the next dialog.
    If you don't see Deployment Descriptor in the category list, try selecting the All Technologies tab instead of the Project Technologies tab.
    John

  • External Entity Problem w/ ejb-jar.xml

    I cannot figure out nor find how to have the ejb-jar.xml refer to external entities
    so that it doesn't get overly large and unmanageable. Note: our "shared-ejb-jar.xml"
    gets converted into "ejb-jar.xml" inside of a deployed shared.jar file.
    The shared-ejb-jar.xml file contains:
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
    2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'
    <!ENTITY SatelliteExt SYSTEM "satellite-ext.xml">
    ]>
    ........XML code.........
    &SatelliteExt;
    ........XML code.........
    The satellite-ext.xml file is in the same directory and contains the XML to describe
    a single <entity>...</entity>.
    I use ant to compile and receive this error:
    C:\jist\bin\build.xml:74: SAXException while parsing 'shared-ejb-jar.xml'. This
    probably indicates badly-formed XML. Details: Relative URI "satellite-ext.xml";
    can not be resolved without a document URI.
    Any help will be most appreciated.
    -- Guy

    Problem is resolved. Thanks for looking over this thread.
    Regards
    Karthik

  • JNDI and env. vars. in ejb-jar.xml

    I have been trying for several days now to have my EJB session bean access
    its env. vars. stored in the ejb-jar.xml document. I have been unsuccessful.
    The only place I have been able to store my env. vars. is in the web.xml
    document outside my .jar file. Although workable, it would be preferable to
    store them in the ejb-jar.xml document in my .jar file.
    I am hoping some one can help me. I am using the following code in my ejb:
    Context init = new InitialContext();
    Context env = (Context)init.lookup("java:comp/env");
    m_bTruncCorporate =
    ((Boolean)env.lookup(MICRworks.MICR_ENV_TRUNCORP)).booleanValue();
    m_strOptPath = (String)env.lookup(MICRworks.MICR_ENV_OPFLPATH);
    m_strOptAccount = (String)env.lookup(MICRworks.MICR_ENV_OPFLACCT);
    m_strOptRouting = (String)env.lookup(MICRworks.MICR_ENV_OPFLROUT);
    My ejb-jar.xml follows:
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
    JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>MICRworksBean</ejb-name>
    <home>USDataworks.MICRworks.MICRworksHome</home>
    <remote>USDataworks.MICRworks.MICRworks</remote>
    <ejb-class>USDataworks.MICRworks.MICRworksBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <description>Flag indicating whether to convert corporate
    checks</description>
    <env-entry-name>TruncateCorporate</env-entry-name>
    <env-entry-type>java.lang.Boolean</env-entry-type>
    <env-entry-value>true</env-entry-value>
    </env-entry>
    <env-entry>
    <description>Location of the 1For1 exclusion files</description>
    <env-entry-name>OptionFilePath</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>http://localhost:7001/MICRworksLite/files/</env-entry-value
    >
    </env-entry>
    <env-entry>
    <description>Name of the 1For1 account exclusions file</description>
    <env-entry-name>OptionFileAccount</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>account_file.txt</env-entry-value>
    </env-entry>
    <env-entry>
    <description>Name of the 1For1 routing exclusion file</description>
    <env-entry-name>OptionFileRouting</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>routing_file.txt</env-entry-value>
    </env-entry>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>MICRworksBean</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Supports</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    and my weblogic-ejb-jar.xml:
    <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0
    EJB//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd'>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>MICRworksBean</ejb-name>
    <stateless-session-descriptor>
    <pool>
    </pool>
    <stateless-clustering>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    </transaction-descriptor>
    <jndi-name>MICRworksBean</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    My feeling is that I am missing some sort of reference in the
    weblogic-ejb-jar.xml that points to the ejb-jar.xml but I have tried several
    things without success.
    I would appreciate any help I can get...especially if it contains specific
    code I can use as I am rather new to writing and deploying ejbs!
    Thanx in advance. Marek :-)

    Thanks for the reference. I was using another book as a reference (Using
    Java 2 Enterprise Edition by Mark Wutka) which had the same sort of example
    and as you can see below, I coded my bean as they suggest...I'm still unable
    to access the env. vars.!
    I deployed by bean using WebLogic's Builder and but didn't create any sort
    of application. I let WebLogic do what it would on its own. The WebLogic
    documentation seemed to indicate for simple testing this would work
    fine...is it wrong?
    btw. MICRworks.MICR_ENV_TRUNCORP equates to "TruncateCorporate" as you
    probably guessed.
    The WebLogic Admin Console shows the environment variables in the EJB
    Descriptors for my EJB but they do not show up when I view the JNDI tree for
    my server. I have taken this to mean that the deployment tool is not
    binding my env. vars. for some reason which would explain why my bean can't
    find them.
    I know it must be something stupid I am doing (or not doing) but I just
    can't see it. Please help!
    "Ryan LeCompte" <[email protected]> wrote in message
    news:[email protected]...
    >
    Hello Marek,
    I would suggest that you download the free book "Mastering EJB 2ndEdition" by
    Ed Roman, Scott Ambler, and Tyler Jewell. The source code for the book isalso
    freely available and is meant to be deployed specifically on WebLogic.Look for
    a sample application called "Jasmine", which shows how to use environmententries.
    You will see a concrete example of how they are defined and later accessedfrom
    within EJBs. The book and source code are available at the followingaddress:
    >
    http://www.theserverside.com/books/masteringEJB/index.jsp
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Marek Kossak" <[email protected]> wrote:
    I have been trying for several days now to have my EJB session bean
    access
    its env. vars. stored in the ejb-jar.xml document. I have beenunsuccessful.
    The only place I have been able to store my env. vars. is in the web.xml
    document outside my .jar file. Although workable, it would be preferable
    to
    store them in the ejb-jar.xml document in my .jar file.
    I am hoping some one can help me. I am using the following code in my
    ejb:
    Context init = new InitialContext();
    Context env = (Context)init.lookup("java:comp/env");
    m_bTruncCorporate =
    ((Boolean)env.lookup(MICRworks.MICR_ENV_TRUNCORP)).booleanValue();
    m_strOptPath = (String)env.lookup(MICRworks.MICR_ENV_OPFLPATH);
    m_strOptAccount = (String)env.lookup(MICRworks.MICR_ENV_OPFLACCT);
    m_strOptRouting = (String)env.lookup(MICRworks.MICR_ENV_OPFLROUT);
    My ejb-jar.xml follows:
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
    JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>MICRworksBean</ejb-name>
    <home>USDataworks.MICRworks.MICRworksHome</home>
    <remote>USDataworks.MICRworks.MICRworks</remote>
    <ejb-class>USDataworks.MICRworks.MICRworksBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <description>Flag indicating whether to convert corporate
    checks</description>
    <env-entry-name>TruncateCorporate</env-entry-name>
    <env-entry-type>java.lang.Boolean</env-entry-type>
    <env-entry-value>true</env-entry-value>
    </env-entry>
    <env-entry>
    <description>Location of the 1For1 exclusion files</description>
    <env-entry-name>OptionFilePath</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>http://localhost:7001/MICRworksLite/files/</env-entry-valu
    e
    >>>
    </env-entry>
    <env-entry>
    <description>Name of the 1For1 account exclusions file</description>
    <env-entry-name>OptionFileAccount</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>account_file.txt</env-entry-value>
    </env-entry>
    <env-entry>
    <description>Name of the 1For1 routing exclusion file</description>
    <env-entry-name>OptionFileRouting</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>routing_file.txt</env-entry-value>
    </env-entry>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>MICRworksBean</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Supports</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    and my weblogic-ejb-jar.xml:
    <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic
    7.0.0
    EJB//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd'>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>MICRworksBean</ejb-name>
    <stateless-session-descriptor>
    <pool>
    </pool>
    <stateless-clustering>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    </transaction-descriptor>
    <jndi-name>MICRworksBean</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    My feeling is that I am missing some sort of reference in the
    weblogic-ejb-jar.xml that points to the ejb-jar.xml but I have tried
    several
    things without success.
    I would appreciate any help I can get...especially if it containsspecific
    code I can use as I am rather new to writing and deploying ejbs!
    Thanx in advance. Marek :-)

  • Ejb-jar.xml and orion-ejb-jar.xml configuration issue

    Chris,
    We have an application that uses the Oracle 10g Application Server and WebSphere MQ v5.3 w/ fixpack 9.
    Our application is a J2EE messaging system which essentially consists of Message Driven Beans, the EJB
    realization of the J2EE Java Message Service (JMS) API. Our application has Message Driven Beans which
    listen to queues and send messages to queues -- a simple messaging system. Currently we can listen to queues, but
    cannot send messages to queues in the Oracle 10g Application Server environment.
    Any J2EE application server has its own implementation of Java Naming Directory Interface (JNDI) API that
    deployed J2EE applications utilize to lookup resources such as Data Sources, JMS Destinations (i.e. MQ Queue),
    JMS QueueConnectionFactories (i.e. MQ QManagers).
    Our application uses the 3rd party JMS Provider, WebSphere MQ.
    MQ ships with a JMSAdmin tool which allows one to create JMS administered objects (i.e. objects a java
    application searches for in some JNDI directory) that reside in some JNDI context. We create a JNDI context for
    MQ resources, queues and QManagers. We configure the MQ provided
    JMSAdmin tool with two property name/value pairs:
    PROVIDER_URL=file:/opt/mqm/JNDI-Directory
    INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
    A resultant .bindings file is created in /opt/mqm/JNDI-Directory which represents our JDNI context
    containing our JMS administered objects. A standalone java application that needs to directly access this
    JNDI context can simply conduct a JNDI lookup on the following context: "java:comp/resource/MQSeries/". An
    example of how a standalone application would lookup a JMS administered object named "qNumber1" would be to
    lookup "java:comp/resource/MQSeries/qNumber1". This lookup would result in the standalone java application
    having a JMS reference to an MQ Queue.
    There is a major difference in how an enterprise EJB application deployed into a J2EE Container (Oracle 10g App Server)
    conducts a JNDI lookup on a 3rd party resource such as MQ as a JMS Provider. A typical EJB application deployed
    into a J2EE container as an .ear (enterprise archive) file has implicit access to the application server's own
    JNDI context. This JNDI context is usually "java:comp/env/". Looking up the Application Server's own Data Source or
    it's own JMS Resources is easy. An application that needs references to these Application Server provided resources
    simply conducts a lookup for "java:comp/env/jms/someQ" or "java:comp/env/jdbc/myDataSource".
    The problem we face is mapping our MQ JNDI context to the Oracle App Server's own JNDI context. We believe this is
    accomplished through mappings defined in both the ejb-jar.xml (EJB Descriptor) and the application server specific
    counterpart, orion-ejb-jar.xml. Note that Oracle 10g Application Server uses the popular orion J2EE container for
    hosting J2EE enterpise applications.
    Our Message Driven Beans (MDBs)currently listen to the Queue at the JNDI location "prodQ". Our problem is that we cannot
    get our MDB to send messages to any queues. Note that the MQ implementation of the queues and Queue Managers work
    flawlessly with standalone java applications. It's safe to say that the MQ objects are working.
    We are looking for a solid example of how the ejb-jar.xml and the orion-ejb-jar.xml map 3rd party JMS provider
    JNDI locations to the App Server's JNDI context.
    Below is how we have attempted to configure our own ejb-jar.xml and orion-ejb-jar.xml:
    ejb-jar.xml begin >>>>>>>>>>>>>>><?xml version = '1.0' encoding = 'UTF-8'?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <display-name>Production Message Driven Bean</display-name>
    <enterprise-beans>
    <message-driven>
    <display-name>prodMdb</display-name>
    <ejb-name>prodMdb</ejb-name>
    <ejb-class>message.handler.AIDMSMessageConsumerBean</ejb-class>
    <transaction-type>Bean</transaction-type>
    <message-driven-destination>
    <destination-type>javax.jms.Queue</destination-type>
    </message-driven-destination>
         <resource-ref>
    <res-ref-name>prodQCF</res-ref-name>
    <res-type>javax.jms.QueueConnectionFactory</res-type>
    <res-auth>Application</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
         <resource-ref>
    <res-ref-name>prodQ</res-ref-name>
    <res-type>javax.jms.Queue</res-type>
    <res-auth>Application</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
                   <resource-ref>
    <res-ref-name>prodR</res-ref-name>
    <res-type>javax.jms.Queue</res-type>
    <res-auth>Application</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    </message-driven>
    </enterprise-beans>
    </ejb-jar>
    <<<<<<<< ejb-jar.xml end <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    begin orion-ejb-jar.xml >>>>>>>>>>>>>>>>>>>>>>>>>>><orion-ejb-jar>
    <enterprise-beans>
    <message-driven-deployment name="prodMdb" connection-factory-location="java:comp/resource/MQSeries/prodQCF" destination-location="java:comp/resource/MQSeries/prodR">
              <resource-ref-mapping location="prodQ" name="prodQ">     
                   <lookup-context location="java:comp/resource/MQSeries/" >
                        <!-- <context-attribute name="java.naming.factory.initial"
                             value="com.sun.jndi.fscontext.RefFSContextFactory" /> -->
                   </lookup-context>
              </resource-ref-mapping>
              <resource-ref-mapping location="prodR" name="prodR">     
                   <lookup-context location="java:comp/resource/MQSeries/" >
                        <!-- <context-attribute name="java.naming.factory.initial"
                             value="com.sun.jndi.fscontext.RefFSContextFactory" /> -->
                   </lookup-context>
              </resource-ref-mapping>
         </message-driven-deployment>
    </enterprise-beans>
    </orion-ejb-jar>
    <<<<<<<<< end orion-ejb-jar.xml <<<<<<<<<<<<<<<<<<<<<<<<

    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

  • No table name specified in ejb-jar.xml file

    Hi, I have an entity bean defined as follows:
    <enterprise-beans>
    <entity>
    <display-name>SponsorEJB</display-name>
    <ejb-name>SponsorEJB</ejb-name>
    <home>com.ultradns.j2ee.components.sponsor.ejb.SponsorHome</home>
    <remote>com.ultradns.j2ee.components.sponsor.ejb.Sponsor</remote>
    <ejb-class>com.ultradns.j2ee.components.sponsor.ejb.SponsorEJB</ejb-class>
    <persistence-type>Container</persistence-type>
    <prim-key-class>java.lang.String</prim-key-class>
    <reentrant>False</reentrant>
         <resource-ref>
              <res-ref-name>jdbc/jdbc/OracleDS</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>Container</res-auth>
         </resource-ref>     
    <cmp-version>2.x</cmp-version>
    <abstract-schema-name>sponsor</abstract-schema-name>
    <cmp-field>
    <primkey-field>guid</primkey-field>
         <query>
              <query-method>
                   <method-name>findAll</method-name>
                   <method-params></method-params>
              </query-method>
              <ejb-ql>
                   <![CDATA[ SELECT OBJECT(a) FROM sponsor AS a]]>
              </ejb-ql>
         </query>
    </entity>
    </enterprise-beans>
    In the database, I want this entity bean refers to a table named "sponsor", but I could not specify the relation in the ejb-jar.xml file. So when I deployed this bean, it auto created a table called "SponsorEJB". Where is this name come from, from display-name or ejb-name field?
    Basically, how can I specify a bean "SponsorEJB" referes to a table "sponsor"?
    Thanks,

    First thing, to stop OC4J auto-creating tables, edit the file %J2EE_HOME%/config/application.xml. Change the first orion-application tag so that one attribute says autocreate-tables="false"
    The ejb-jar.xml file describes your EJB's to the container. It is not supposed to describe which table each entity bean maps too, as this is an implementation specific property, so would not be portable between databases. Therefore you have to configure the container to point an entity to a table. Sun uses the sun-j2ee-ri.xml file to do this, and this has to be included in the deployment.
    OC4J however uses the file 'orion-ejb-jar.xml', and will generate this for you. Since you have already deployed your application, this will have already been generated. Go to the directory %J2EE_HOME%/application-deployments. There will be a directory corresponding to your application name. In there is a directory corresponding to your ejb module name, and in there is the 'orion-ejb-jar.xml' file. If you open this file, you will see the entity deployment tags, an example of one is below. Edit the tag so that the table attribute points to the table in your database (note that there is a data-source attribute as well, so make sure that this points to the correct schema). The example below points the EJB Emp to the table EMP:
    <entity-deployment name="Emp" max-instances="10" location="Emp" wrapper="EmpHome_EntityHomeWrapper3" table="EMP" data-source="jdbc/rob9iDS" locking-mode="optimistic" update-changed-fields-only="true" min-instances-per-pk="0" max-instances-per-pk="50" disable-wrapper-cache="true">
    Hope this helps,
    Rob

  • Error while migrating orion-ejb-jar.xml from OC4J 9.0.4.1

    I am trying to use Toplink migration tool to take our existing orion-ejb-jar.xml file and toplink-ejb-jar.xml file to new 10.1.3 deployment. While running the migration tool I get the following error
    WARNING: Oc4j native CMP setting optimistic-locking on
    entity(TransactionTypeEntityBean) is not migrated and supported.
    java.lang.IllegalArgumentException: MWDatabaseField[9BE2B5]
    (TAX_RULE.TAX_RULE_ID)
    at
    oracle.toplink.workbench.mappingsmodel.desc.relational.MWRelationalPrima
    ryKeyPolicy.addPrimaryKey(MWRelationalPrimaryKeyPolicy.java:99)
    at
    oracle.toplink.tools.migration.RuntimeCMPProjectToMWProjectConverter.con
    vertDescriptor(RuntimeCMPProjectToMWProjectConverter.java:297)
    at
    oracle.toplink.tools.migration.RuntimeCMPProjectToMWProjectConverter.con
    vertDescriptors(RuntimeCMPProjectToMWProjectConverter.java:265)
    at
    oracle.toplink.tools.migration.RuntimeCMPProjectToMWProjectConverter.con
    vertProject(RuntimeCMPProjectToMWProjectConverter.java:144)
    at
    oracle.toplink.tools.migration.MigrationManagerBase.convertAndWriteoutMW
    Project(MigrationManagerBase.java:369)
    at
    oracle.toplink.tools.migration.MigrationManagerBase.migrate(MigrationMan
    agerBase.java:358)
    at
    oracle.toplink.tools.migration.io.MigrationIOManager.buildMigratedJarFil
    e(MigrationIOManager.java:243)
    at
    oracle.toplink.tools.migration.io.MigrationIOManager.operateEarEntry(Mig
    rationIOManager.java:181)
    at
    oracle.toplink.tools.migration.io.MigrationIOManager.operateEar(Migratio
    nIOManager.java:145)
    at
    oracle.toplink.tools.migration.io.MigrationIOManager.operateIO(Migration
    IOManager.java:88)
    at
    oracle.toplink.tools.migration.MigrationManagerBase.startMigration(Migra
    tionManagerBase.java:280)
    at
    oracle.toplink.tools.migration.MigrationManagerBase.run(MigrationManager
    Base.java:121)
    at
    oracle.toplink.tools.migration.MigrationManagerBase.run(MigrationManager
    Base.java:97)
    at
    oracle.toplink.tools.migration.TopLinkCMPMigrator.main(TopLinkCMPMigrato
    r.java:59)

    Hello,
    The warning message looks to be unrelated to the java.lang.IllegalArgumentException error. The warning states that optimistic locking cannot be migrated to the toplink-ejb-jar.xml file; this is stated in chapter 7 of the TopLink developer's guide at
    http://download-west.oracle.com/otn_hosted_doc/toplink/1013/MAIN/_pdf/b13593_v1_01.pdf
    The exception though seems to indicate that your orion-ejb-jar.xml contains EJBs mapped to the same table that are not related through EJB inheritance. I do it all the time with POJOs so this will work in TopLink, but you will need a support case to help get your project migrated if this is the case.
    Best Regards,
    Chris Delahunt

Maybe you are looking for

  • Itunes 10 finishes 90% of install then errors.

    "The installer has insufficient privileges to access this directory: C:\Program Files (x86)\Common Files\Apple\Mobile Device Support\ ...\Windows. The installation cannot continue. Log on as administrator or contact your system administrator." I chan

  • Date & Time in Item Master Creation

    Dear All,                 Is there any option to identify the created time and date of Item master data in SAP item master form itself ? Thanks, Bhoopathi.K

  • Help with Four Keycaps T410

    I recently got a T410 for my aged Mother to keep in touch via skype/email etc, but four of the keys are missing the character - M N A and R - a As she has impaired vision and coming to this technology late, it is causing her a lot of frustration when

  • My wifi is not connecting but searching the device

    Please tell what to do , my wifi is not connecting to device but already searched the device

  • Cannot Import Deep Hierarchy into MDM?

    Hi All,                                                                                 According to the MDM online document of importing source data into                   hierarchy table, it seems that the maximum number of levels of the