...
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 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 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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Manifest-Version: 1.0 Main-Class: examples.appclient.client.ConverterClient |
...