MTOM Demo for SWA & XOP
=======================

This demo illustrates the use of a SOAP message with an attachment and 
XML-binary Optimized Packaging.

Please review the README in the samples directory before continuing.



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

$SUBSTITUTE_PREREQ$



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

From the samples/mtom 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/mtom directory, first create the target directory 
build/classes and then generate code from the WSDL file.

For UNIX:
  mkdir -p build/classes

  wsdl2java -d build/classes -compile ./wsdl/mtom_xop.wsdl

For Windows:
  mkdir build\classes
    (Use back slashes.)

  wsdl2java -d build\classes -compile .\wsdl\mtom_xop.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/mtom/client/*.java
  javac -d build/classes src/demo/mtom/server/*.java
  cp src/demo/mtom/client/me.bmp build/classes/demo/mtom/client/me.bmp

For Windows:

  set classpath=%classpath%;.\build\classes
  javac -d build\classes src\demo\mtom\client\*.java
  javac -d build\classes src\demo\mtom\server\*.java
  copy src\demo\mtom\client\me.bmp build\classes\demo\mtom\client\me.bmp


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

From the samples/mtom directory run the following commands on a single command 
line:

For UNIX (must use forward slashes):
    java -Djava.util.logging.config.file=$$SUBSTITUTE_HOME$/etc/logging.properties
         demo.mtom.server.Server &

    java -Djava.util.logging.config.file=$$SUBSTITUTE_HOME$/etc/logging.properties
         demo.mtom.client.Client ./wsdl/mtom_xop.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.mtom.server.Server

    java -Djava.util.logging.config.file=%$SUBSTITUTE_HOME$%\etc\logging.properties
       demo.mtom.client.Client .\wsdl\mtom_xop.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/mtom directory, build the WAR file to be deployed into the
servlet container by running:

  ant war


Copy the WAR file from the samples/mtom/build/war directory to the servlet 
container's deployment directory - for example, $CATALINA_HOME/webapps on Tomcat. 
The servlet container extracts the WAR and deploys the application.

Make sure you have already copied all JARs from $SUBSTITUTE_HOME$/lib to
$CATALINA_HOME/shared/lib

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.

Using java, run the client application with the command:

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

  For Windows:

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

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