Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

The following is the deployment descriptor of the Java EE application client module that looks up an ejb and calls a method on it. The ejb converts the Indian Rupess (Rs.) into American Dollars ($). The client sends a double value which is Indian Rupees to ejb. The ejb returns equivalent American Dollars as double value.

Code Block
XMLXML
borderStylesolid
titleapplication-client.xml
XML
<?xml version="1.0" encoding="UTF-8"?>

<application-client xmlns="http://java.sun.com/xml/ns/javaee" 
  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/application-client_5.xsd"
  version="5">
    
  <ejb-ref>
    <ejb-ref-name>ejb/Converter</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <remote>examples.appclient.Converter</remote>
  </ejb-ref>

</application-client>
Note

The default namespace of the above XML document is http://java.sun.com/xml/ns/javaeeImage Removed. The XML elements that do not have a namespace prefix belong to the default namespace. Hence, in the above XML document, all the XML elements belong to the default namespace.

...

Following is the corresponding deployment plan of the Java EE client module.

Code Block
XMLXML
borderStylesolid
titlegeronimo-application-client.xml
XML
<?xml version="1.0" encoding="UTF-8"?>

<application-client xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0"
  xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
  xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
  xmlns:security="http://geronimo.apache.org/xml/ns/security-2.0"
  xmlns:connector="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
 
 <sys:client-environment>
  <sys:moduleId>
  <sys:groupId>Converter</sys:groupId>
  <sys:artifactId>Converter-app-client</sys:artifactId>
  <sys:version>3.0</sys:version>
  <sys:type>jar</sys:type>
  </sys:moduleId>
</sys:client-environment>
  
  <sys:server-environment> 
   <sys:moduleId>
   <sys:groupId>Converter</sys:groupId>
   <sys:artifactId>Converter-app-client-server</sys:artifactId>
   <sys:version>3.0</sys:version>
   <sys:type>jar</sys:type>
   </sys:moduleId>    		
  </sys:server-environment> 
    
     <ejb-ref>
     	<ref-name>ejb/Converter</ref-name>
     	<naming:pattern>
         <naming:groupId>Converter</naming:groupId>
         <naming:artifactId>ConverterEAR</naming:artifactId>
         <naming:version>5.0</naming:version>
         <naming:module>ConverterEJB.jar</naming:module>
         <naming:name>ConverterBean</naming:name>
       </naming:pattern>
     </ejb-ref>
     
</application-client>
Note

The default namespace of the above XML document is http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0Image Removed. The XML elements that do not have a namespace prefix belong to the default namespace. Hence, in the above XML document, <application-client>, <ejb-ref> and <ref-name> elements belong to the default namespace.

...

The below is the client code that looks up the ejb and calls the method on it.

Code Block
JAVAJAVA
borderStylesolid
titleConverterClient.java
JAVA
package examples.appclient.client;
import javax.naming.Context;
import javax.naming.InitialContext;
import examples.appclient.Converter;

public class ConverterClient {

 //The remote interface of the ConverterBean packaged with the
 //Java EE client jar
   private static Converter converter;

   private static double amount = 50;
   public static void main(String[] args) {
    amount = Double.parseDouble(args[0]);
    doConversion();
   }

    public static void doConversion() {
     try {
            
        Context context = new InitialContext();
        converter = (Converter) 
                 context.lookup("java:comp/env/ejb/Converter");
        double dollars = converter.getDollars(amount);
        System.out.println("Rs " + amount + " is " + dollars + " Dollars.");
        System.exit(0);
            
        } catch (Exception ex) {
            System.err.println("Caught an unexpected exception!");
            ex.printStackTrace();
        }
    }
}

The META-INF/MANIFEST.MF file should contain the following entry for the client to run.

Code Block
XMLXML
borderStylesolid
titleMANIFEST.MF
XML
Manifest-Version: 1.0
Main-Class: examples.appclient.client.ConverterClient

...