|
Download
FAQ History |
|
API
Search Feedback |
Using JAXR Clients in J2EE Applications
You can create J2EE applications that use JAXR clients to access registries. This section explains how to write, compile, package, deploy, and run a J2EE application that uses JAXR to publish an organization to a registry and then query the registry for that organization. The application in this section uses two components: an application client and a stateless session bean.
The section covers the following topics:
You will find the source files for this section in the directory
<INSTALL>/j2eetutorial14/examples/jaxr/clientsession. Path names in this section are relative to this directory.The following directory contains a built version of this application:
If you run into difficulty at any time, you can open the EAR file in
deploytooland compare that file to your own version. You may have to add a new version of the properties file that specifies a different Tomcat port. (The properties file in the EAR file sets the port to 8082.)Coding the Application Client: MyAppClient.java
The application client class,
src/MyAppClient.java, obtains a handle to thePubQueryenterprise bean's remote home interface, using the JNDI API naming contextjava:comp/env. The program then creates an instance of the bean and calls the bean's two business methods:executePublishandexecuteQuery.Before you compile the application, edit the
PubQueryBeanExamples.propertiesfile in the same way you edited theJAXRExamples.propertiesfile to run the simple examples.
- If you are using the Java WSDP Registry Server, specify the correct host and port values for the
queryManagerURLandlifeCycleManagerURLentries. To use another registry, comment out the property that specifies the Registry Server, and remove the comment from the other registry.- If you are using a public registry, change the values for the r
egistry.usernameandregistry.passwordproperties to specify the user name and password you obtained when you registered with the registry. Change the values for thehttp.proxyHostandhttps.proxyHostentries so that they specify the system on your network through which you access the Internet.Coding the PubQuery Session Bean
The
PubQuerybean is a stateless session bean that has onecreatemethod and two business methods. The bean uses remote interfaces rather than local interfaces because it is accessed from outside the EJB container.The remote home interface source file is
src/PubQueryHome.java.The remote interface,
src/PubQueryRemote.java, declares two business methods:executePublishandexecuteQuery. The bean class,src/PubQueryBean.java, implements theexecutePublishandexecuteQuerymethods and their helper methodsgetName,getDescription, andgetKey. These methods are very similar to the methods of the same name in the simple examplesJAXRQuery.javaandJAXRPublish.java. TheexecutePublishmethod uses information in the filePubQueryBeanExample.propertiesto create an organization named The Coffee Enterprise Bean Break. TheexecuteQuerymethod uses the organization name, specified in the application client code, to locate this organization.The bean class also implements the required methods
ejbCreate,setSessionContext,ejbRemove,ejbActivate, andejbPassivate.The
ejbCreatemethod of the bean class allocates resources--in this case, by looking up theConnectionFactoryand creating theConnection.The
ejbRemovemethod must deallocate the resources that were allocated by theejbCreatemethod. In this case, theejbRemovemethod closes theConnection.Compiling the Source Files
To compile the application source files, go to the directory
<INSTALL>/j2eetutorial14/examples/jaxr/clientsession. Use the following command:The
compiletarget places the properties file and the class files in thebuilddirectory.Importing Certificates
If you will be using the Java WSDP Registry Server, skip this section.
In order to run the
ClientSessionAppapplication against the Microsoft or IBM registry, you need to import certificates from your version of the Java 2, Standard Edition Software Development Kit (J2SE SDK) into the Application Server. The simple client programs use the J2SE SDK certificates, but the Application Server does not have these certificates, so running a J2EE application that uses JAXR against an external registry requires special steps.
- Verify the alias names of the Certificate Authorities (CA) you want to migrate by running the following command:
keytool -list -v -keystoreJ2SE_SDK_truststore_fileThe default location for
J2SE_SDK_truststore_fileis<JAVA_HOME>/jre/lib/security/cacerts.To access the Microsoft registry, you need the CA with the alias name
verisignclass3ca. To access the IBM registry, you need the CA with the alias nameverisignserverca.- Export the CA with the desired alias name from the J2SE SDK truststore to a file in the current directory:
keytool -export -aliasalias_name-keystoreJ2SE_SDK_truststore_file-fileexport_CA_fileWhen you are asked for a password, type
changeit.For example, you could type the following (all on one line) to export the Microsoft CA:
keytool -export -alias verisignclass3ca -keystore
C:\j2sdk1.4.2_04\jre\lib\security\cacerts -file ca_for_ms- Import the
export_CA_fileinto the Application Server truststore:
keytool -import -aliasalias_name-storepass changeit
-keystore <INSTALL>/domains/domain1/config/cacerts.jks
-fileexport_CA_fileWhen you are asked, "Trust this certificate?", type
yes.For example, you could type the following (all on one line) to import the CA you just exported:
keytool -import -alias verisignclass3ca -storepass changeit -keystore
C:\Sun\AppServer\domains\domain1\config\cacerts.jks
-file ca_for_ms- If the Application Server was running, stop and restart it.
Starting the Application Server
To run this example, you need to start the Application Server. Follow the instructions in Starting and Stopping the Application Server.
Creating JAXR Resources
To use JAXR in a J2EE application that uses the Application Server, you need to access the JAXR resource adapter (see Implementing a JAXR Client) through a connector connection pool and a connector resource. You can create these resources in the Admin Console.
If you have not done so, start the Admin Console as described in Starting the Admin Console.
To create the connector connection pool, perform the following steps:
To create the connector resource, perform the following steps:
If you are in a hurry, you can create these objects using the following
asanttarget in thebuild.xmlfile for this example:Creating and Packaging the Application
Creating and packaging this application involve four steps:
Starting deploytool and Creating the Application
- Start
deploytool. On Windows systems, choose StartPrograms
Sun Microsystems
J2EE 1.4 SDK
Deploytool. On UNIX systems, use the
deploytoolcommand.- Choose File
New
Application.
- Click Browse (next to the Application File Name field), and use the file chooser to locate the directory
clientsession.- In the File Name field, type
ClientSessionApp.- Click New Application.
- Click OK.
Packaging the Session Bean
- Choose File
New
Enterprise Bean to start the Enterprise Bean wizard. Then click Next.
- In the EJB JAR General Settings screen:
- Select Create New JAR Module in Application, and make sure that the application is
ClientSessionApp.- In the JAR Name field, type
PubQueryJAR.- Click Edit Contents.
- In the dialog box, locate the
clientsession/builddirectory. SelectPubQueryBean.class,PubQueryHome.class,PubQueryRemote.class, andPubQueryBeanExample.propertiesfrom the Available Files tree area. Click Add, and then OK.- In the Bean General Settings screen:
- From the Enterprise Bean Class menu, choose
PubQueryBean.- Verify that the Enterprise Bean Name is
PubQueryBeanand that the Enterprise Bean Type is Stateless Session.- In the Remote Interfaces area, choose
PubQueryHomefrom the Remote Home Interface menu, and choosePubQueryRemotefrom the Remote Interface menu.After you finish the wizard, perform the following steps:
Packaging the Application Client
- Choose File
New
Application Client to start the Application Client Wizard. Then click Next.
- In the JAR File Contents screen:
- Make sure that Create New AppClient Module in Application is selected and that the application is
ClientSessionApp.- In the AppClient Name field, type
MyAppClient.- Click Edit Contents.
- In the dialog box, locate the
clientsession/builddirectory. SelectMyAppClient.classfrom the Available Files tree area. Click Add, and then OK.- In the General screen, select
MyAppClientin the Main Class combo box.After you finish the wizard, click the EJB Ref's tab, and then click Add in the inspector pane. In the dialog box, follow these steps:
- Type
ejb/remote/PubQueryin the Coded Name field.- Choose Session from the EJB Type menu.
- Choose Remote from the Interfaces menu.
- Type
PubQueryHomein the Home Interface field.- Type
PubQueryRemotein the Local/Remote Interface field.- In the Target EJB area, select JNDI Name and type
PubQueryBeanin the field. The session bean uses remote interfaces, so the client accesses the bean through the JNDI name rather than the bean name.Checking the JNDI Names
Select the application, click Sun-specific Settings on the General page, and verify that the JNDI names for the application components are correct. They should appear as shown in Tables 10-3 and 10-4.
Table 10-3 Application Pane for ClientSessionApp Component Type Component JNDI Name EJB PubQueryBean PubQueryBean
Table 10-4 References Pane for ClientSessionApp Ref. Type Referenced By Reference Name JNDI Name EJB Ref MyAppClient ejb/remote/PubQuery PubQueryBean Resource PubQueryBean eis/JAXR eis/JAXR
Deploying the Application
- Save the application.
- Choose Tools
Deploy.
- In the dialog box, type your administrative user name and password (if they are not already filled in), and click OK.
- In the Application Client Stub Directory area, select the Return Client Jar checkbox, and make sure that the directory is
clientsession.- Click OK.
- In the Distribute Module dialog box, click Close when the process completes. You will find a file named
ClientSessionAppClient.jarin the specified directory.Running the Application Client
- If you are using the Java WSDP Registry Server, start it by starting Tomcat.
Windows systems: Choose Start
Programs
Java(TM) Web Services Developer Pack 1.3
Start Tomcat.
UNIX systems:
<JWSDP_HOME>/bin/startup.shStarting Tomcat takes some time.
- To run the client, use the following command:
appclient -client ClientSessionAppClient.jarThe program output in the terminal window looks like this:
In the server log, you will find the output from the
executePublishandexecuteQuerymethods, wrapped in logging information.After you run the example using a public registry, use the
run-deletetarget in thesimpledirectory to delete the organization that was published.
|
Download
FAQ History |
|
API
Search Feedback |
All of the material in The J2EE(TM) 1.4 Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.