- Home
- Products
- Integration
- Tutorial
- Barcode FAQ
- Purchase
- Company
Code generation with XDoclet in Java
Code generation with XDoclet PDF-417 2d Barcode Encoder In Java Using Barcode drawer for Java Control to generate, create PDF417 image in Java applications. www.OnBarcode.comReading PDF-417 2d Barcode In Java Using Barcode scanner for Java Control to read, scan read, scan image in Java applications. www.OnBarcode.comFinally, the additional subtasks must be specified in the <ejbdoclet/> task itself. As you can see in the recipe, we add tasks to generate all four interfaces for the beans. Indeed, all four will be generated because we also specified the viewtype as both. In addition, by default XDoclet will add a component name and JNDI name for both the local home and home interfaces as a public final static member variable. You can use the variable to make your client code more maintainable. By default, the names correspond to the fully qualified name of the bean class (using / instead of .). Rather than show all four generated interfaces for each bean, we just show the local interfaces for each. For the session bean, the getName() and setName() methods will be in the local and remote interfaces. The session bean s home and local home interfaces will contain a create() method. Listing 2.4 contains the session bean s generated entire remote interface (comments and all). Making Code 128 In Java Using Barcode creator for Java Control to generate, create Code 128 Code Set C image in Java applications. www.OnBarcode.comPrinting EAN-13 In Java Using Barcode generation for Java Control to generate, create GTIN - 13 image in Java applications. www.OnBarcode.comListing 2.4 Generated by XDoclet, User.java
GS1 - 13 Encoder In Java Using Barcode encoder for Java Control to generate, create EAN 13 image in Java applications. www.OnBarcode.comCode 3/9 Creation In Java Using Barcode printer for Java Control to generate, create Code-39 image in Java applications. www.OnBarcode.com/* * Generated by XDoclet - Do not edit! */ package ch2; /** * Remote interface for ch2.User. */ public interface User extends javax.ejb.EJBObject { public java.lang.String getName( ) throws java.rmi.RemoteException; public void setName( java.lang.String value ) throws java.rmi.RemoteException; } Creating GS1 DataBar Stacked In Java Using Barcode creation for Java Control to generate, create DataBar image in Java applications. www.OnBarcode.comUPC - E0 Generation In Java Using Barcode encoder for Java Control to generate, create UPCE image in Java applications. www.OnBarcode.comThe entity bean s home and local home interfaces will contain a findByPrimaryKey() method. Its remote and local interface will contain getFirstName(), setFirstName(), getLastName(), setLastName(), and getName(). Listing 2.5 contains the entity bean s generated remote interface . Draw PDF417 In Java Using Barcode drawer for BIRT Control to generate, create PDF 417 image in Eclipse BIRT applications. www.OnBarcode.comPaint PDF417 In Java Using Barcode generation for Java Control to generate, create PDF417 image in Java applications. www.OnBarcode.comAdding and customizing the JNDI name for the home interface
Draw UCC-128 In None Using Barcode maker for Font Control to generate, create UCC-128 image in Font applications. www.OnBarcode.comMake Barcode In None Using Barcode maker for Software Control to generate, create Barcode image in Software applications. www.OnBarcode.comListing 2.5
Code 39 Extended Generator In Visual Basic .NET Using Barcode encoder for .NET Control to generate, create USS Code 39 image in VS .NET applications. www.OnBarcode.comCode 128 Code Set A Generator In None Using Barcode creator for Online Control to generate, create Code 128 Code Set C image in Online applications. www.OnBarcode.comGenerated by XDoclet, Data.java
Generating QR Code JIS X 0510 In VB.NET Using Barcode creator for .NET framework Control to generate, create QR Code JIS X 0510 image in .NET applications. www.OnBarcode.comQR-Code Recognizer In C# Using Barcode scanner for .NET Control to read, scan read, scan image in VS .NET applications. www.OnBarcode.com/* * Generated by XDoclet - Do not edit! */ package ch2; /** * Remote interface for ch2.Data. */ public interface Data extends javax.ejb.EJBObject { public void getAllData( ) throws java.rmi.RemoteException; public java.lang.String getBigData( ) throws java.rmi.RemoteException; public java.lang.String getSmallData( throws java.rmi.RemoteException; ) PDF-417 2d Barcode Maker In None Using Barcode maker for Word Control to generate, create PDF-417 2d barcode image in Word applications. www.OnBarcode.comDraw Barcode In Visual Studio .NET Using Barcode printer for .NET Control to generate, create Barcode image in VS .NET applications. www.OnBarcode.compublic void setBigData( java.lang.String data ) throws java.rmi.RemoteException; public void setSmallData( java.lang.String data ) throws java.rmi.RemoteException; } GS1 DataBar Expanded Encoder In VS .NET Using Barcode creator for Visual Studio .NET Control to generate, create GS1 DataBar-14 image in Visual Studio .NET applications. www.OnBarcode.comDecoding EAN13 In Java Using Barcode decoder for Java Control to read, scan read, scan image in Java applications. www.OnBarcode.comSee also
2.2 Adding and customizing the JNDI name for the home interface 2.5 Generating a primary key class 2.11 Generating finder methods for entity home interfaces 2.2 Adding and customizing the JNDI name for the home interface
Problem
You want a good way to store the JNDI name of a bean for easy retrieval to aid in bean lookup.
Code generation with XDoclet
Background
You can use XDoclet to add a public static final member variable to the home interfaces that it generates to store the JNDI name of the bean. Without customization, it provides a default value for this name. By specifying the JNDI name in the home interface, you can modify it without changing your bean lookup code. Recipe
Use the recipe shown in recipe 2.1 (listing 2.4) to generate the home interface. However, change the class-level JavaDoc to look like the following and specify the JNDI name (the changes are shown in bold): /** * @ejb.bean type="Stateful" * jndi-name="ejb/UserBean" * local-jndi-name="ejb/UserBeanLocal" * view-type="both" */ public class UserBean implements SessionBean { No changes need to be made to the build.xml file from the target shown in recipe 2.1.
Discussion
By including the JNDI lookup name as a public static final member variable in the home interface, you give your code a permanent, safe way of discovering the JNDI name for EJB lookup. Using this method, you don t have to hardcode a name in the lookup implementation. The resulting home interface has the following lines added to it: public static final String COMP_NAME="comp/env/ejb/ch2/User"; public static final String JNDI_NAME="ejb/UserBean"; The resulting local home interface contains a different name (as specified in the bean source): public static final String COMP_NAME="java:comp/env/ejb/ch2/UserLocal"; public static final String JNDI_NAME="ejb/UserBeanLocal"; Without customization, XDoclet will enter names using the package name of the bean class. For instance, the UserBean JNDI name would have been ch2/UserBean. Keeping your EJB deployment descriptor current
When looking up an EJB home interface via JNDI, you normally would use code similar to the following: InitialContext ctx = new InitialContext(); UserHome home = (UserHome) ctx.lookup( "ejb/UserBean" ); By adding the JNDI name to the home interface, your code can change to something like this: InitialContext ctx = new InitialContext(); UserHome home = (UserHome) ctx.lookup( UserHome.JNDI_NAME );
|
|