nmukhi 2003/01/16 10:05:07 Modified: java/samples/ejb AddressBook.wsdl README.html java/samples/ejb/client/dynamic README.html java/samples/ejb/client/stub README.html java/samples/ejb/service README.html Log: Changed EJB sample READMEs so that JBoss-specific portions are separated more cleanly. Revision Changes Path 1.3 +5 -5 xml-axis-wsif/java/samples/ejb/AddressBook.wsdl Index: AddressBook.wsdl =================================================================== RCS file: /home/cvs/xml-axis-wsif/java/samples/ejb/AddressBook.wsdl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AddressBook.wsdl 16 Dec 2002 11:35:16 -0000 1.2 +++ AddressBook.wsdl 16 Jan 2003 18:05:06 -0000 1.3 @@ -103,12 +103,12 @@ <!-- service decln --> <service name="AddressBookService"> - <!-- JBoss specific EJB endpoint --> <port name="EJBPort" binding="tns:EJBBinding"> - <ejb:address className="ejb.service.AddressBookSessionHome" - jndiName="ejb/service/AddressBook" - initialContextFactory="org.jnp.interfaces.NamingContextFactory" - jndiProviderURL="localhost"/> + <!-- Put vendor-specific deployment information here --> + <ejb:address className="" + jndiName="" + initialContextFactory="" + jndiProviderURL=""/> </port> </service> 1.3 +2 -2 xml-axis-wsif/java/samples/ejb/README.html Index: README.html =================================================================== RCS file: /home/cvs/xml-axis-wsif/java/samples/ejb/README.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- README.html 13 Dec 2002 22:59:55 -0000 1.2 +++ README.html 16 Jan 2003 18:05:06 -0000 1.3 @@ -12,11 +12,11 @@ EJB Sample</h1> <p>This sample aims to demonstrate the invocation of an EJB through WSIF's API. This means that an EJB is exposed as a first class WSDL-described service using the <a href="../../doc/wsdl_extensions/ejb_extension.html">EJB binding extensions</a> defined in WSIF.</p> <p>In this particular sample, we describe an AddressBook service, a common example in various Web services toolkits. For those unfamilar with it, this service offers a port type with three operations. Two of the operations add an entry to the address book, using slightly different styles for providing input information. The third operation queries the address book with a name. The service uses complex schema types for representing an address and a phone number.</p> -<p>The abstract functionality is tied to an EJB binding that describes how a stateful session bean supports the abstract port type defined. It is worth emphasizing that this isn't a standard WSDL binding, instead it exploits WSDL's extensibility to describe how to access the abstract functionality when it is deployed and available on an EJB. You will notice that the <tt><ejb:address></tt> element in the <a href="AddressBook.wsdl">AddressBook WSDL</a> refers to an initial context factory that gets used by WSIF's EJB provider. The classpath specified here is vendor specific and will need to be changed depending on your particular deployment.</p> +<p>The abstract functionality is tied to an EJB binding that describes how a stateful session bean supports the abstract port type defined. It is worth emphasizing that this isn't a standard WSDL binding, instead it exploits WSDL's extensibility to describe how to access the abstract functionality when it is deployed and available on an EJB. You will notice that the <tt><ejb:address></tt> element in the <a href="AddressBook.wsdl">AddressBook WSDL</a> refers to an initial context factory that gets used by WSIF's EJB provider. The classpath specified here is vendor specific and will need to be changed depending on your particular deployment, we have provided instructions in the service deployment documentation we link to below.</p> <p>The <a href="AddressBook.wsdl">WSDL file</a> is in this sample directory; this has the EJB binding.</p> <p><a href="service/README.html">Here's</a> how this service is implemented. We also describe how to deploy the EJB on a J2EE platform of your choice.</p> <p><a href="client/dynamic/README.html">Here's</a> how to invoke this service dynamically using WSIF's dynamic invocation interface (DII).</p> <p><a href="client/stub/README.html">Here's</a> how to invoke this service by first generating the stub interface and using this directly through WSIF's dynamic proxy, thus hiding all WSIF specifics from the client code. Note that the stub interface used is the the service interface as defined by the JAX-RPC specification.</p> -<p>Deployment of an EJB as well as acessing and using it is vendor-specific. We have made it particularly simple to run this sample if you use <a href="http://www.jboss.org">JBoss</a> as your application server, but have also provided enough documentation so that it should not be hard to run this sample in a different environment. +<p>Deployment of an EJB as well as acessing and using it is vendor-specific. We have included instructions for deploying and using this sample in particular app server environments; even if your favorite app server isn't part of our list, we have provided enough documentation so that it should not be hard to run this sample in a different environment. <hr width="100%"> </body></html> 1.3 +8 -4 xml-axis-wsif/java/samples/ejb/client/dynamic/README.html Index: README.html =================================================================== RCS file: /home/cvs/xml-axis-wsif/java/samples/ejb/client/dynamic/README.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- README.html 7 Jan 2003 17:52:43 -0000 1.2 +++ README.html 16 Jan 2003 18:05:06 -0000 1.3 @@ -10,9 +10,13 @@ <h2> Web Services Invocation Framework:<br> Invoking the EJB Sample using WSIF's dynamic invocation interface</h2> -<p>First you need to <a href="../../../../doc/samples.html">set up the CLASSPATH in your environment</a>. Beyond the standard classpath setting, you also need to add the J2EE client jar files to your classpath. The set of J2EE client JARs is vendor specific; refer to the documentation in your application server on how to set up the environment for an EJB client, and add the JAR files specified. For JBoss users, we have included a script to set up the client environment. To run this script, make sure you are in your base WSIF directory (the one that contains the <tt>classpath.bat</tt> script. Set the variable <tt>JBOSS_HOME</tt> to point to your JBoss installation. From there, run the command <tt>samples\ejb\client\jboss_setup\jboss.bat</tt>. This sets up the entire client classpath required to run the sample using JBoss client JAR files.</p> -<p>The <a href="../../AddressBook.wsdl">WSDL file</a> that describes the service and its EJB binding is vendor-specific in the <tt><ejb:address></tt> element. The <tt>initialContextFactory</tt>, <tt>jndiName</tt> and <tt>jndiProviderURL</tt> attributes will all depend on your specific deployment; refer to your application server documentation on how to write an EJB client to learn more about JNDI and related issues. Make sure these values are all correct before you try running the client.</p> -<p>After you have set up your classpath, to invoke this sample using WSIF's DII, run the <tt>Run</tt> class located in this directory. This class will populate an addressbook with two names and then query each of them by invoking various operations supported by the service. To run this class, specify on the command line the location of the WSDL file for the service. For example, <br><tt>java ejb.client.dynamic.Run samples/ejb/AddressBook.wsdl</tt></p> -<p>Look at the code in the <tt>Run.java</tt> file in this directory to see how to use WSIF's DII yourself. Note that the <tt>DynamicInvoker</tt> class we used to <a href="../../../simplesoap/client/dynamic/README.html">invoke the simplesoap sample dynamically</a> cannot be used for this one since the <tt>DynamicInvoker</tt> as it stands now is limited to invocation of services using primitive schema types only.</p> +<p>First you need to <a href="../../../../doc/samples.html">set up the CLASSPATH in your environment</a>. Beyond the standard classpath setting, you also need to add the J2EE client jar files to your classpath. The set of J2EE client JARs is vendor specific. We have included below instructions for some app servers, follow that link if you happen to be using one of those, otherwise refer to the documentation in your application server on how to set up the environment for an EJB client.</p> +<p><b>Setting up the client on some app servers</b> +<ul> + <li><a href="../jboss_setup/README.html">JBoss setup</a></li> +</ul></p> +<p><b>Running the client</b> +<p>After you have set up your classpath, you can invoke this sample using WSIF's DII by running the <tt>Run</tt> class located in this directory. This class will populate an addressbook with two names and then query each of them by invoking various operations supported by the service. To run this class, specify on the command line the location of the WSDL file for the service. For example, <br><tt>java ejb.client.dynamic.Run samples/ejb/AddressBook.wsdl</tt></p> +<p>Look at the code in the <tt>Run.java</tt> file in this directory to see how to use WSIF's DII yourself. Note that the <tt>DynamicInvoker</tt> class we used to <a href="../../../simplesoap/client/dynamic/README.html">invoke the simplesoap sample dynamically</a> cannot be used for this one since the <tt>DynamicInvoker</tt> as it stands now is limited to invocation of services using primitive schema types only.</p></p> <hr width="100%"> </body></html> 1.2 +7 -3 xml-axis-wsif/java/samples/ejb/client/stub/README.html Index: README.html =================================================================== RCS file: /home/cvs/xml-axis-wsif/java/samples/ejb/client/stub/README.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- README.html 13 Dec 2002 22:59:55 -0000 1.1 +++ README.html 16 Jan 2003 18:05:07 -0000 1.2 @@ -10,9 +10,13 @@ <h2> Web Services Invocation Framework:<br> Invoking the EJB Sample through a high level stub interface</h2> -<p>First you need to <a href="../../../../doc/samples.html">set up the CLASSPATH in your environment</a>. Beyond the standard classpath setting, you also need to add the J2EE client jar files to your classpath. The set of J2EE client JARs is vendor specific; refer to the documentation in your application server on how to set up the environment for an EJB client, and add the JAR files specified. For JBoss users, we have included a script to set up the client environment. To run this script, make sure you are in your base WSIF directory (the one that contains the <tt>classpath.bat</tt> script. Set the variable <tt>JBOSS_HOME</tt> to point to your JBoss installation. From there, run the command <tt>samples\ejb\client\jboss_setup\jboss.bat</tt>. This sets up the entire client classpath required to run the sample using JBoss client JAR files.</p> -<p>The <a href="../../AddressBook.wsdl">WSDL file</a> that describes the service and its EJB binding is vendor-specific in the <tt><ejb:address></tt> element. The <tt>initialContextFactory</tt>, <tt>jndiName</tt> and <tt>jndiProviderURL</tt> attributes will all depend on your specific deployment; refer to your application server documentation on how to write an EJB client to learn more about JNDI and related issues. Make sure these values are all correct before you try running the client.</p> -<p>After you have set up your classpath, to invoke this sample using WSIF's DII, run the <tt>Run</tt> class located in this directory. This is the logic that uses the generated stub interface to run the sample. So you can run this class, specifying on the command line the location of the WSDL file for the sample. For example, <br> +<p>First you need to <a href="../../../../doc/samples.html">set up the CLASSPATH in your environment</a>. Beyond the standard classpath setting, you also need to add the J2EE client jar files to your classpath. The set of J2EE client JARs is vendor specific. We have included below instructions for some app servers, follow that link if you happen to be using one of those, otherwise refer to the documentation in your application server on how to set up the environment for an EJB client.</p> +<p><b>Setting up the client on some app servers</b> +<ul> + <li><a href="../jboss_setup/README.html">JBoss setup</a></li> +</ul></p> +<p><b>Running the client</b> +<p>After you have set up your classpath, to invoke this sample using a JAX-RPC stub interface, run the <tt>Run</tt> class located in this directory. This is the logic that uses the generated stub interface to run the sample. So you can run this class, specifying on the command line the location of the WSDL file for the sample. For example, <br> <tt>java ejb.client.stub.Run samples/ejb/AddressBook.wsdl</tt></p> <p>The sample code will use the stub interface to populate an addressbook with two entries and will then query the addressbook for those two addresses using the corresponding names.</p> <p>To generate the stub interface, you can use any tool that generates Java interfaces for WSDL services using their port type descriptions, such as WSDL2Java from Axis. WSIF assumes a correspondence between the generated Java interface and the WSDL port type that has its abstract description as specified in the JAX-RPC specification. This particular sample did not use WSDL2Java in a simple way (due to a current bug in WSDL2Java that prevents it from processing WSDLs that do not have a valid SOAP endpoint or binding. We managed to get it to work by commenting out the EJB binding that is currently there, and introducing a binding element that describes a SOAP binding. After doing this, we ran WSDL2Java in the following way:<br> 1.3 +1 -1 xml-axis-wsif/java/samples/ejb/service/README.html Index: README.html =================================================================== RCS file: /home/cvs/xml-axis-wsif/java/samples/ejb/service/README.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- README.html 27 Dec 2002 17:52:32 -0000 1.2 +++ README.html 16 Jan 2003 18:05:07 -0000 1.3 @@ -16,7 +16,7 @@ <li><tt><a href="AddressBookSession.java">AddressBookSessionHome.java</a></tt>, the home interface for our session bean.</li> <li><tt><a href="AddressBookSessionBean.java">AddressBookSessionBean.java</a></tt>, the EJBimplementation. This is as vanilla as can be, using a hash table to store a map of names to addresses.</li> <li><tt><a href="addressbook">addressbook</a></tt> is a subdirectory containing the complex Java types used - these can be generated from the WSDL</li> - <li><tt><a href="deploy">deploy</a></tt> is a subdirectory containing the things necessary to deploy this EJB to your favorite application server. Generally to deploy your EJB you will need to compile the code for this sample, then package it into a JAR along with an <tt><a href="deploy/jboss/ejb-jar.xml">ejb-jar.xml</a></tt> file. Your application server may need other files. We have included under the <tt>deploy/jboss</tt> directory a pre-packaged jar that contains the compiled beans and the configuration files required by JBoss. All you need to deploy to JBoss is to drop this <a href="deploy/jboss/addressbook.jar">addressbook JAR file for JBoss</a> (assuming you use the default server configuration) into server/default/deploy under your JBoss server installation, and start your server. This has been tested with JBoss version 3.0.4 running on Windows 2000, with the sample client running on Windows 2000 and using WSIF in a Java 1.4.1 environment.</li> + <li><tt><a href="deploy">deploy</a></tt> is a subdirectory containing the things necessary to deploy this EJB to your favorite application server. Generally to deploy your EJB you will need to compile the code for this sample, then package it into a JAR along with an <tt><a href="deploy/jboss/ejb-jar.xml">ejb-jar.xml</a></tt> file. Your application server may need other files, take a look at app server specific instructions under the deploy directory.</li> </ul> <hr width="100%"> </body></html>