Versions Compared

Key

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

...

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
XML
XML
borderStylesolid
titleapplication-client.xmlXML
<?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>

...

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

Code Block
XML
XML
borderStylesolid
titlegeronimo-application-client.xmlXML
<?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>

...

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

Code Block
JAVA
JAVA
borderStylesolid
titleConverterClient.javaJAVA
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
XML
XML
borderStylesolid
titleMANIFEST.MFXML
Manifest-Version: 1.0
Main-Class: examples.appclient.client.ConverterClient

...