<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.w3.org/TR/REC-html40" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:nedstat="http://m1.nedstat.net/basic.js" xmlns:rss="http://purl.org/rss/1.0/">
  <rss:channel rdf:about="http://www.cs.toronto.edu/~yijun">
    <rss:title>CSC408H Course Tutorial: HOW TO SETUP YOUR WEB SERVICES FOR OMNIEDITOR</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>Tutorial of the CSC408H (Software Engineering) course</rss:description>
    <rss:image rdf:resource="http://www.cs.toronto.edu/~yijun/images/xml.gif"/>
    <rss:items>
      <rdf:Seq>
        <rdf:li resource="apache-HOWTO.html"/>
        <rdf:li resource="axis-HOWTO.html"/>
        <rdf:li resource="axis-c-HOWTO.html"/>
        <rdf:li resource="bugzilla-HOWTO.html"/>
        <rdf:li resource="cvs-HOWTO.html"/>
        <rdf:li resource="eclipse-HOWTO.html"/>
        <rdf:li resource="gSOAP-HOWTO.html"/>
        <rdf:li resource="misc-HOWTO.html"/>
        <rdf:li resource="mono-HOWTO.html"/>
        <rdf:li resource="tomcat-HOWTO.html"/>
        <rdf:li resource="uddi-HOWTO.html"/>
        <rdf:li resource="unittest-HOWTO.html"/>
        <rdf:li resource="VIM-HOWTO.html"/>
        <rdf:li resource="WebServices-HOWTO.html"/>
      </rdf:Seq>
    </rss:items>
  </rss:channel>
  <rss:image rdf:about="http://www.cs.toronto.edu/~yijun/images/xml.gif">
    <rss:title>Tutorials of CSC408H</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h</rss:link>
    <rss:url>http://www.cs.toronto.edu/~yijun/images/xml.gif</rss:url>
  </rss:image>
  <rss:item rdf:about="WebServices-HOWTO.html">
    <rss:title>HOW TO SETUP YOUR WEB SERVICES FOR OMNIEDITOR</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/WebServices-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Please report any problem you have so that we can gradually have the HOWTO
correct for everyone.  For the concepts of Web Services, please read <a href="tutorial1.pdf">
Tutorial 1</a>.
<p/><ol><li> Please first do the following:
<pre>
ln -s ~yijun/software .
</pre>
This command will create a symbolic link to the software installed on the
instructor's account.
</li><li> If you are using TCSH, try to enable these environment variables
in your <code>.tcshrc</code>:
<pre>
setenv JAVA_HOME /usr/local/packages/j2sdk1.4.2_04
setenv AXISCPP_HOME $HOME/software/axis-c-1-2-linux
setenv AXIS_HOME $AXISCPP_HOME/deploy
setenv EXPAT_HOME $HOME/software
setenv XERCESCROOT $HOME/software/xerces-c-src_2_5_0
setenv XERCESC_HOME $HOME/software
setenv LD_LIBRARY_PATH &quot;/local/lib/eclipse:/usr/lib/gcc-lib/2.95.4:$XERCESC_HOME/lib:$EXPAT_HOME/lib:$AXISCPP_HOME/bin:$AXIS_HOME/libs&quot;
setenv CATALINA_BASE $HOME/software/jakarta-tomcat-4.1.31
setenv CATALINA_HOME $CATALINA_BASE
setenv AXIS_LIB /u/yijun/software/axis-1_1/lib
setenv AXISCLASSPATH $AXIS_LIB/axis.jar:$AXIS_LIB/commons-discovery.jar:$AXIS_LIB/commons-logging.jar:$AXIS_LIB/jaxrpc.jar:$AXIS_LIB/saaj.jar:$AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/xml-apis.jar:$AXIS_LIB/xercesImpl.jar:$AXIS_LIB/wsdl4j.jar:$HOME/software/junit3.8.1/junit.jar:$CATALINA_HOME/common/lib/activation.jar:$CATALINA_HOME/common/lib/mail.jar:.
set path=($path $HOME/software/xerces-c-src_2_5_0/bin)
set path=($HOME/software/apache/bin $path)
set path=($path $HOME/software/bin)
set path=($JAVA_HOME/bin $path)
setenv CVSROOT ~/cvsroot
setenv CVS_RSH rsh
</pre></li></ol><h2> Resources </h2>
You don't need to download/install the software if it can be configured
according to the instructions. <br/>In principle, we just install the basic
software once on the instructor's account.
<ul><li>SOAP implementations and Editors <br/><a href="http://www.extreme.indiana.edu/xgws/soap_bench/grid2004.pdf">Comparing performance of SOAP implementations [pdf]</a><ul><li> for Java. <a href="tutorial5.pdf">On software measurements</a>. A Java profile analysis tool: 
&quot;java -jar software/HPjmeter.jar&quot;.
		<ul><li><a href="tomcat-HOWTO.html">Tomcat</a></li><li><a href="axis-HOWTO.html">Axis</a></li><li><a href="eclipse-HOWTO.html">Eclipse</a></li></ul></li><li>for C/C++
	<ul><li><a href="apache-HOWTO.html">Apache</a></li><li><a href="axis-c-HOWTO.html">Axis-C</a></li><li><a href="gSOAP-HOWTO.html">gSOAP</a></li><li><a href="VIM-HOWTO.html">VIM</a></li></ul></li><li> for C# 
	<ul><li><a href="mono-HOWTO.html">mono</a></li></ul></li></ul></li><li><a href="bugzilla-HOWTO.html">Bugzilla</a></li><li><a href="cvs-HOWTO.html">CVS</a></li><li><a href="unittest-HOWTO.html">Unit test tools</a></li><li><a href="http://www.cs.toronto.edu/~yijun/OpenOME.html">OpenOME</a>, a requirements engineering tool</li><li><a href="uddi-HOWTO.html">UDDI server</a></li></ul></rss:description>
  </rss:item>
  <rss:item rdf:about="axis-HOWTO.html">
    <rss:title>AXIS</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/axis-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
      <ol>
        <li> 
For setting up Tomcat, see <a href="tomcat-HOWTO.html">the Tomcat HowTo</a></li>
        <li>
The Axis 1.1 is installed at:
<pre>
cd ~/software/axis-1_1
</pre>
Now a web serivce can be deployed, for example
<pre>
./deploy.sh
</pre>
After running this command, two example web services 
<code>StockQuote</code> and <code>StockInfo</code> are deployed. 
The deployment script is 
<pre>
	cat samples/stock/deploy.wsdd
</pre>
You can deploy the web serive to a <a href="tomcat-HOWTO.html">TOMCAT server</a>, see the option:
<pre>
    -lhttp://seawolf.cdf.toronto.edu:8081/axis/services/AdminService
</pre></li>
        <li>
After deployment, you can call the webservice through
<pre>
./client.sh
</pre>
The feedback is
<pre>
IBM: Armonk, NY
</pre></li>
        <li>
To undeploy the web service, type 
<pre>
./undeploy.sh
</pre></li>
        <li>
You can test your web service locally, using the SimpleAxisServer:
<pre>
./stock2.sh
</pre></li>
        <li>
After your own web service is developed, it can be deployed
under the following directory:
<pre>
~/software/jakarta-tomcat-4.1.31/webapps/axis/WEB-INF/classes/c408h0xx
</pre>
where <code>xx</code> is your group number.
</li>
        <li>
The documentation of your web service should be put under the
following directory:
<pre>
~/software/jakarta-tomcat-4.1.31/webapps/axis/c408h0xx
</pre></li>
      </ol>
      <h2> References </h2>
      <a href="http://ws.apache.org/axis/">Web Services - Axis</a>
      <ul>
        <li>
          <a href="http://apache.towardex.com/ws/axis/1_1/axis-1_1.tar.gz">download Axis 1.1</a>
        </li>
      </ul>
    </rss:description>
  </rss:item>
  <rss:item rdf:about="axis-c-HOWTO.html">
    <rss:title>AXIS-C</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/axis-c-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
See <a href="apache-HOWTO.html">apache</a> setup.
<h2> References </h2><a href="http://ws.apache.org/axis/cpp/">Apache Axis C++</a><ul><li><a href="http://www.apache.org/dist/ws/axis-c/source/linux/axis-c-src-1-2-linux.tar.gz"> download source of Axis C++ 1.2</a></li><li><a href="http://unc.dl.sourceforge.net/sourceforge/expat/expat-1.95.8.tar.gz">download expat 1.95.8</a></li><li><a href="http://apache.mirror.mcgill.ca/xml/xerces-c/xerces-c-current.tar.gz">download xerces-c src 2.5.0</a></li><li><a href="http://ftp.gnu.org/gnu/libtool/libtool-1.5.8.tar.gz">download libtool 1.5.8</a></li><li><a href="http://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.gz">download autoconf 2.59</a></li><li><a href="http://ftp.gnu.org/gnu/m4/m4-1.4.2.tar.gz">download m4 1.4.2</a></li><li><a href="http://ftp.gnu.org/gnu/automake/automake-1.9.tar.gz">download automake 1.9</a></li></ul></rss:description>
  </rss:item>
  <rss:item rdf:about="VIM-HOWTO.html">
    <rss:title>VIM</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/VIM-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<ol><li>
Please see the <a href="tutorial2.pdf">Tutorial 2</a>
on how to use VIM to communicate with other tools through
the Netbeans protocol.
</li></ol><h2> References </h2><li><a href="netbeans.html">VIM help on Netbeans</a></li><li><a href="ExtEdProtocol.html">Netbeans help</a></li><li><a href="http://www.vim.org">VIM Online</a></li><li><a href="ftp://ftp.vim.org/pub/vim/unix/vim-6.3.tar.bz2">download VIM 6.3</a></li>
The following files are provided by Jing Su:
<li><a href="SimpleServer.java">A simple Netbeans Server in Java </a></li><li><a href="simplesrv.c">A simple Netbeans Server in C </a></li></rss:description>
  </rss:item>
  <rss:item rdf:about="apache-HOWTO.html">
    <rss:title>Apache</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/apache-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<ol><li>
Note each team should do the following just once!
Configure your apache server by modifying the file under your 
own directory:
<pre>
cp $HOME/software/conf/httpd.conf $HOME
</pre>
In order to avoid conflicting with other team's work, edit the file
<code>$HOME/httpd.conf</code>, change the port number to the <code> 8080 + 2 *
team_number </code>. For example, if you are from team <code>20</code>, your
port number will be <code>8080 + 2 * 20 = 8120</code>. 
</li><li> Look for &quot;8080&quot; and
replace the line with:
<pre>
Listen seawolf.cdf.toronto.edu:8120
</pre>
Next, run the following command:
<pre>
/usr/local/packages/apache-2.0/bin/httpd -f $HOME/httpd.conf
</pre>
You Apache web server will be up and running.
Try the following URLs:
<pre>
http://seawolf.cdf.toronto.edu:8120
http://seawolf.cdf.toronto.edu:8120/axis
http://seawolf.cdf.toronto.edu:8120/axis/Calculator?wsdl
</pre>
The first one is the apache server, the second one is 
the axis-c server and the third one is the WSDL for a 
calculator service.
</li></ol><h2> References </h2><a href="http://www.apache.org">The Apache Software Foundation</a><ul><li><a href="http://gulus.usherbrooke.ca/pub/appl/apache/httpd/httpd-2.0.51.tar.gz"> download apache Web server 2.0.51</a></li></ul></rss:description>
  </rss:item>
  <rss:item rdf:about="bugzilla-HOWTO.html">
    <rss:title>Bugzilla</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/bugzilla-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
<a href="http://werewolf.cdf.toronto.edu:10777">Bugzilla at the CDF</a>
<h2> References </h2><a href="http://www.bugzilla.org/">Bugzilla.org</a><ul><li><a href="http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-2.16.6.tar.gz">download bugzilla 2.16.6</a></li></ul></rss:description>
  </rss:item>
  <rss:item rdf:about="cvs-HOWTO.html">
    <rss:title>CVS</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/cvs-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<h2> References </h2><li><a href="CVS-RCS-HOWTO.html">CVS-RCS command line HOWTO</a></li><li><a href="tutorial3.pdf">CVS usage in Eclipse (covered in Tutorial 3)</a></li></rss:description>
  </rss:item>
  <rss:item rdf:about="eclipse-HOWTO.html">
    <rss:title>Eclipse</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/eclipse-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
Please consult <a href="tutorial3.pdf">Tutorial 3</a>. 
<ol><li>
Don't forget to add the following line to your startup script:
<pre>
setenv LD_LIBRARY_PATH /local/lib/eclipse
</pre></li><li>
If you want to use your own plugin, to avoid contention with
other's work, this is a better way to create a symbolic link 
to the common plugins: 
<pre>
        mkdir ~/eclipse
        cd ~/eclipse
        ln -s /local/lib/eclipse/* .
        rm plugins
        mkdir plugins
        cd plugins
        ln -s /local/lib/eclipse/plugins/* .
</pre>
Now you can replace the symbolic link to your modified plugin, 
or add a new plugin on your own directory.
</li><li>
After that, you can save your plugin to the
<pre>
        ~/eclipse/plugins directory
</pre>
In addition, you need now to run eclipse from
<pre>
        ~/eclipse/eclipse
</pre></li><li>
You may take a look at the org.eclipse.ui.editors plugin to learn
how Eclipse editor works. The CVS repository locates at:
<pre>
	-d:pserver:anonymous@dev.eclipse.org:/home/eclipse
</pre>
In Eclipse, open &quot;Versions&quot;, &quot;org.eclipse.ui.editors&quot;, and
&quot;org.eclipse.ui.editors R3_0&quot; consequently. You shall be able 
to &quot;Checkout&quot; the source code as your project.
</li></ol><h2> References </h2><a href="http://www.eclipse.org">Eclipse.org Main Page</a></rss:description>
  </rss:item>
  <rss:item rdf:about="gSOAP-HOWTO.html">
    <rss:title>gSOAP</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/gSOAP-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<ol><li>To try out the Stock Quote web service in the tutorial,
please run the following commands:
<pre>
cd $HOME/software/gsoap-2.7/soapcpp2/samples/quote
quote IBM
</pre></li><li>
You may view the following files to understand how it works:
<pre>
quote.h			The C/C++ interface to the web service 
quote.cpp		The Client program to invoke the web service
Makefile		How the following files are generated
quote.wsdl		The WSDL description of the web service
quote.getQuote.req.xml	The request SOAP message
quote.getQuote.res.xml	The response SOAP message
</pre></li><li>A simple gSOAP web server. Suppose you are in team 20 and
thus use 8120 as the port number for your team's web service.
If you are alreadying running <a href="apache-HOWTO.html">apache server
</a>, try first to kill the process:
<pre>
killall httpd
</pre>
Then do the following:
<pre>
cd $HOME/software/gsoap-2.7/soapcpp2/samples/webserver
webserver 8120 &amp;
</pre>
A server will be running at the background and listening to your port
number 8120. Now one can call it through the following URL:
<pre>
http://seawolf:8120
http://seawolf:8120/calc.html
</pre>
The first URL is not very useful, just shows that the web server
is running. The second URL shows an Javascript interface to the
Calculator web service. You can use any web browser as a client
to call the web service remotely and display the result to your 
web browser. You may also exercise to create a web service client
to try it.
</li><li>
You may kill the web service (and all running web services) through
<pre>
killall webserver
</pre></li></ol><h2> References </h2><a href="http://www.cs.fsu.edu/~engelen/soap.html">gSOAP:
C/C++ Web Services and Clients</a><ul><li><a href="http://aleron.dl.sourceforge.net/sourceforge/gsoap2/gsoap-2.7.tar.gz"> download gSOAP implementation 2.7</a></li><li><a href="http://www.webware.at/SOAP/apache_gsoap.0.0.5.tgz"> download gSOAP for Apache module 0.0.5</a></li></ul></rss:description>
  </rss:item>
  <rss:item rdf:about="misc-HOWTO.html">
    <rss:title>Tips</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/misc-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction ... 
<ol><li>
Note: to find a unused port number, you may try 
<pre>
netstat -na
</pre></li><li>
When you changed some shell script file into DOS format, please make 
sure it is revert to Unix format. In VIM, you can do it by:
<pre>
set ff=unix
:wq
</pre></li><li>
Why Eclipse often core-dump on Linux? The major reason is that the 
environment LD_LIBRARY_PATH points to Lesstif widgets if not 
otherwise defined (e.g. /local/lib/eclipse). 
</li></ol></rss:description>
  </rss:item>
  <rss:item rdf:about="mono-HOWTO.html">
    <rss:title>Mono</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/mono-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<!--
<ol>
<li>
</li>
</ol>
--><h2> References </h2><a href="http://www.mono-project.com/about/index.html">What is Mono?</a></rss:description>
  </rss:item>
  <rss:item rdf:about="tomcat-HOWTO.html">
    <rss:title>Tomcat</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/tomcat-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<ol><li> 
Currently, we have set up the Tomcat web server 4.1.31, at
<code>$CATALINA_HOME</code>, because it is the recommended
web server by the stable version <code>Axis 1.1</code>. 
</li><li>
We assume that each team that uses the Java/Axis would host
their webapps on the same server, thus we provide <code>8081</code> 
as the common socket port number for all teams.
</li><li>
The tomcatv server is running:
<pre>
	http://seawolf.cdf.toronto.edu:8081/
</pre><!--
If it is not running, you can restart it by
<pre>
	$CATALINA_HOME/bin/startup.sh
</pre>
--></li><li>
The hosted web services are actually web applications.
You can verify that the Axis is up and running:
<pre>
	http://seawolf.cdf.toronto.edu:8081/axis/happyaxis.jsp
</pre></li><li>
For deploying your own Axis web services, see 
<a href="axis-HOWTO.html">the Axis HowTo</a>.
</li></ol><h2> References </h2><a href="http://jakarta.apache.org/tomcat/">Apache Jakata Tomcat</a><ul><li><a href="http://apache.sunsite.ualberta.ca/jakarta/tomcat-4/v4.1.31/bin/jakarta-tomcat-4.1.31.tar.gz">download Tomcat 4.1.31</a></li></ul></rss:description>
  </rss:item>
  <rss:item rdf:about="uddi-HOWTO.html">
    <rss:title>UDDI</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/uddi-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<!--
<ol>
<li>
</li>
</ol>
--><h2> References </h2><a href="http://www.uddi.org/">UDDI.org</a></rss:description>
  </rss:item>
  <rss:item rdf:about="unittest-HOWTO.html">
    <rss:title>Unit Test</rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/unittest-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>
Under construction...
<LI><a href="handouts/testing.pdf">On Testing</a></LI><ol><li>
See <a href="tutorial4.pdf">Tutorial 4</a> for details.  
We may do this tutorial next week.
</li></ol><h2> References </h2><li><a href="http://www.junit.org/index.htm">JUnit</a></li><li><a href="http://cppunit.sourceforge.net/cgi-bin/moin.cgi">cppUnit</a></li></rss:description>
  </rss:item>
<!--
  <rss:item rdf:about="-HOWTO.html">
    <rss:title></rss:title>
    <rss:link>http://www.cs.toronto.edu/~yijun/csc408h/handouts/-HOWTO.html</rss:link>
    <nedstat:counter>ADAvhQTgMXzHryN71V+IINgjovzg</nedstat:counter>
    <rss:description>

    </rss:description>
  </rss:item>
 -->
</rdf:RDF>
