Hello World Demo using Bare Style in XML Binding
================================================

This demo illustrates how $SUBSTITUTE_NAME$'s XML binding works with the 
document/literal bare style.

Please review the README in the samples directory before continuing.


Prerequisite
------------

$SUBSTITUTE_PREREQ$


Building and running the demo using ant
---------------------------------------

From the samples/hello_world_xml_bare directory, use the following commands to 
build and run the demo on either UNIX or Windows:

  ant build
  ant server
  ant client
    

To remove the code generated from the WSDL file and the .class files, run:

  ant clean



Building the demo using wsdl2java and javac
-------------------------------------------

From the samples/hello_world_xml_bare directory, first create the target
directory build/classes and then generate code from the WSDL file.

For UNIX:

  mkdir -p build/classes
  $THE_TOOL$ wsdl2java -d build/classes -compile ./wsdl/hello_world.wsdl

For Windows:

  mkdir build\classes
    (You must use back slashes.)

  $THE_TOOL$ wsdl2java -d build\classes -compile .\wsdl\hello_world.wsdl
    (Use either forward or backslashes.)

Now compile the provided client and server applications with the commands:

For UNIX:  
  
  export CLASSPATH=$CLASSPATH:./build/classes
  javac -d build/classes src/demo/hw/client/*.java
  javac -d build/classes src/demo/hw/server/*.java

For Windows:

  set classpath=%classpath%;.\build\classes
  javac -d build\classes src\demo\hw\client\*.java
  javac -d build\classes src\demo\hw\server\*.java



Running the demo using java
---------------------------

From the samples/hello_world_xml_bare directory run the following commands. 
They are entered on a single command line.

For UNIX (must use forward slashes):

    java -Djava.util.logging.config.file=$$SUBSTITUTE_HOME$/etc/logging.properties
         demo.hw.server.Server &

    java -Djava.util.logging.config.file=$$SUBSTITUTE_HOME$/etc/logging.properties
         demo.hw.client.Client ./wsdl/hello_world.wsdl

The server process starts in the background. After running the client, use the 
kill command to terminate the server process.

For Windows (use either forward or backslashes):

  start 
    java -Djava.util.logging.config.file=%$SUBSTITUTE_HOME$%\etc\logging.properties
         demo.hw.server.Server

    java -Djava.util.logging.config.file=%$SUBSTITUTE_HOME$%\etc\logging.properties
       demo.hw.client.Client .\wsdl\hello_world.wsdl

A new command windows opens for the server process. After running the client, 
terminate the server process by issuing Ctrl-C in its command window.



Building and running the demo in a servlet container
----------------------------------------------------

From the samples/hello_world_xml_bare directory, use the following command to 
create the WAR file that is deployed to the servlet container.

  ant war
    
Set the CATALINA_HOME environment to your Apache Tomcat home directory.
    
Deploy the web application into Tomcat with the following command:

  ant deploy -Dtomcat=true

Note: This step checks whether the $SUBSTITUTE_NAME_LOWER$ JAR files are present in Tomcat, 
      if not, it automatically copies all the JARs to CATALINA_HOME/shared/lib.

The servlet container extracts the WAR and deploys the application.


Running the client using ant
----------------------------

Run the client application with the command:

  ant client-servlet -Dbase.url=http://localhost:#

Where # is the TCP/IP port used by the servlet container, for example, 8080.

Or
  ant client-servlet -Dhost=localhost -Dport=8080

You can omit -Dhost and -Dport if Tomcat is already running on this host and port.


Running the client using java
-----------------------------

Run the client application with the command:

  For UNIX:
    
    java -Djava.util.logging.config.file=$$SUBSTITUTE_HOME$/etc/logging.properties
         demo.hw.client.Client http://localhost:#/helloworld/services/hello_world?wsdl

  For Windows:

    java -Djava.util.logging.config.file=%$SUBSTITUTE_HOME$%\etc\logging.properties
       demo.hw.client.Client http://localhost:#/helloworld/services/hello_world?wsdl

Where # is the TCP/IP port used by the servlet container, for example, 8080.


Undeploying the application
---------------------------

Undeploy the web application from Tomcat with the command:

   ant undeploy -Dtomcat=true



Invoking the service with HTTP GET
----------------------------------

$SUBSTITUTE_NAME$ allows you to invoke the service using HTTP GET. So instead of running 

   ant client

you can invoke the service with a simple HttpURLConnection by running

   ant client.get

You can even use your favorite browser to get the results back.
