The leader in enterprise class, open source middleware

JBoss Enterprise Middleware

Subscribe to JBoss Enterprise Middleware: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get JBoss Enterprise Middleware: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


JBoss Authors: APM Blog, Stackify Blog, SOASTA Blog, XebiaLabs Blog, Dynatrace Blog

Related Topics: Java EE Journal, JBoss Enterprise Middleware

J2EE Journal: Article

Migrating a JBoss EJB Application to WebLogic

Modify a JBoss application for the WebLogic Server

The structural and application assembly information for an EJB is specified in the deployment descriptors. Structural information includes specifying the EJB as a session EJB or an entity EJB. The application assembly information in the ejb-jar.xml deployment descriptor is specified in the assembly-descriptor element. The entity EJB deployment descriptors for JBoss are ejb-jar.xml, jboss.xml, and jbosscmp-jdbc.xml. The corresponding deployment descriptors for WebLogic are ejb-jar.xml, weblogic-ejb-jar.xml, and weblogic-cmp-rdbms-jar.xml. In the following sections the conversion between these files will be described.

The ejb-jar.xml deployment descriptor is the same for WebLogic and JBoss. The ejb-jar.xml deployment descriptor for the example entity EJB is shown in Listing 4. The example ejb-jar.xml defines an entity EJB with the EJB name "Catalog." The example EJB has the CMP fields: catalogId, journal, and publisher. The primary key field is catalogId.

Converting jboss.xml to weblogic-ejb-jar.xml
The weblogic-ejb-jar.xml and jboss.xml deployment descriptors are vendor-specific deployment descriptors for EJBs. To deploy a JBoss EJB application to the WebLogic application server, convert the jboss.xml deployment descriptor to weblogic-ejb-jar.xml. The root element in weblogic-ejb-jar.xml is weblogic-ejb-jar. The root element in jboss.xml is jboss. The JNDI name for an EJB is specified in the jboss.xml and weblogic-ejb-jar.xml deployment descriptors with the jndi-name element or the local-jndi-name element. The jboss.xml deployment descriptor for the example entity EJB is shown in Listing 5. The DOCTYPE element for the weblogic-ejb-jar.xml deployment descriptor is:

<!DOCTYPE weblogic-ejb-jar PUBLIC
"-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" >

The DOCTYPE for the jboss.xml deployment descriptor is:

<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">

Convert the deployment descriptor ejb-jar.xml to the deployment descriptor weblogic-ejb-jar.xml with a custom XSLT stylesheet, weblogic-ejb-jar.xslt, shown in Listing 6. The stylesheet creates weblogic-ejb-jar.xml, the WebLogic equivalent of JBoss's jboss.xml deployment descriptor. The weblogic-ejb-jar.xml file generated with the weblogic-ejb-jar.xslt stylesheet is shown in Listing 7.

Converting jbosscmp-jdbc.xml to weblogic-cmp-rdbms-jar.xml
The weblogic-cmp-rdbms-jar.xml deployment specifies the database persistence information for a CMP entity EJB. The weblogic-cmp-rdbms-jar.xml file includes the table name for an entity EJB, the data source to connect to the database, and the columns corresponding to the entity EJB CMP fields. The JBoss deployment descriptor that specifies the CMP entity EJB persistence information is jbosscmp-jdbc.xml. The jbosscmp-jdbc.xml for the example EJB is shown in Listing 8.

The root element of weblogic-cmp-rdbms-jar.xml is weblogic-rdbms-jar. The root element in jbosscmp-jdbc.xml is jbosscmp-jdbc. The data-source-name element, which specifies the data source to connect to the database in the weblogic-cmp-rdbms-jar.xml file, is equivalent to the datasource element in the jbosscmp-jdbc.xml deployment descriptor. The field-map element, which specifies the mapping of the entity EJB CMP fields to database table columns in weblogic-cmp-rdbms-jar.xml, is the equivalent of the cmp-field element in jbosscmp-jdbc.xml. The dbms-column element, which specifies a column name in weblogic-cmp-rdbms-jar.xml, is the equivalent of the column-name element in jbosscmp-jdbc.xml. The DOCTYPE for the weblogic-cmp-rdbms-jar.xml deployment descriptor is:

<!DOCTYPE weblogic-rdbms-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB RDBMS Persistence//EN'
'http://www.bea.com/servers/wls810/dtd/weblogic-rdbms20-persistence-810.dtd'>

The DOCTYPE for jbosscmp-jdbc.xml is:

<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">

Convert the deployment descriptor jbosscmp-jdbc.xml to weblogic-cmp-rdbms-jar.xml with the custom XSLT stylesheet, weblogic-cmp-rdbms-jar.xslt, shown in Listing 9. The stylesheet creates weblogic-cmp-rdbms-jar.xml, the WebLogic equivalent of JBoss's jbosscmp-jdbc.xml deployment descriptor. weblogic-cmp-rdbms-jar.xml is shown in Listing 10.

The DTDs for the WebLogic deployment descriptors are different from the JBoss deployment descriptors. With custom XSLTs, which may be modified if additional elements are present in the deployment descriptors, the JBoss deployment descriptors get converted to WebLogic deployment descriptors. In the following section, the EJB application is deployed in the WebLogic server.

Deploying the EJB Application in WebLogic
After converting the JBoss EJB deployment descriptors to WebLogic deployment descriptors, create an EJB JAR file to deploy in the WebLogic server. The structure of the WebLogic JAR file is:

META-INF/
  ejb-jar.xml
  weblogic-ejb-jar.xml
  weblogic-cmp-rdbms-jar.xml
CatalogBean.class
Catalog.class
CatalogHome.class

More Stories By Deepak Vohra

Deepak Vohra is a Sun Certified Java 1.4 Programmer and a Web developer.

More Stories By Ajay Vohra

Ajay Vohra is a senior solutions architect with DataSynapse Inc.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.