Apache SOAP在 tomcat下安装(原创)--庆祝一下新开版面

发表于:2007-07-01来源:作者:点击数: 标签:
******************************************* *其实,我只是从apache soap文档里翻译过来的 * *希望能够抛砖引玉* *初次翻译,不当之处,希大家指出。* ******************************************* 资源下载: http://xml.apache.org/dist/soap/ 安装Apache
*******************************************
*其实,我只是从apache soap文档里翻译过来的 *
*  希望能够抛砖引玉                       *
*  初次翻译,不当之处,希大家指出。       *
*******************************************
资源下载
     http://xml.apache.org/dist/soap/
     

安装Apache SOAP2.2(我下载最新的2.2版)
   Apache-SOAP可以做为服务器也可以做为客户端安装。

  如果你是从老版本的Apache SOAP升级安装,你必须删掉所有的缓存类文件, 部署服务文件。否则你会遇到各种奇怪的错误。
   如果你是使用一个Web app 来加载Apache SOAP,所有旧的扩展的
   WARS必须被删掉。加载到老版本的服务不会自动转到新版本-
    你必须手动重新部署。也就是说,老的DeployedServices.ds文件不能被新版本读取。
   如果你在安装APACHE SOAP的过程中碰到任何奇怪,不正常的事情
   最有可能的就是老版本残留的代码的问题。把你的机器搞干净重新安装或在一个从没有安装过的环境中安装。


客户端安装:

    你的classpath中必须包含:
    soap.jar
    mail.jar
    activation.jar
    一个支持命名空间的JAXP解析器如 Apache Xerces(1.1.2以上版本)
   如果你有其他不支持命名空间的解析器,你必须把他的解析包放在classpath的
   最前面。  


  服务器端的安装:
     确信你的classpath包含了你客户端安装的所有classpath中的组件
     此外:
        为了在脚本语言中实现服务,你还要安装
         bsf.jar 从http://oss.software.ibm.com/developerworks/projects/bsf得到
         js.jar  从http://www.mozilla.org/rhino/得到
        为了支持servlet 或jsp你还要安装一种App Server如:tomcat, weblogic


   以下以tomcat3.2为例:
    注意:
           先将xerces.jar放到classpath的最前面
   如果你是运行startup.bat来启动tomcat。在tomcat.bat(在tomcat3.2.1是第69行)里面应该这样
       set CP=<xerces.jar所在路径>\xerces.jar;%CLASSPATH%;%CP%
   如果你是运行startup.sh来启动tomcat。在tomcat.sh第113行后添加
       CLASSPATH=<xerces.jar所在路径>/xerces.jar:${CLASSPATH}


在tomcat上部署apache-soap
  在tomcat上部署apache-soap有两种不同的方法

方法一:部署web archive (即部署war)
      apache-soap的发布版在包含<soap安装目录>/webapps下有一个soap.war,
      把这个文件copy到你的<tomcat安装目录>/webapps下面,重新启动tomcat即可。
      如果你以这种方式部署apache-soap,你不再需要<soap安装目录>下的任何东西
      (soap.war已包含了所有需要的东西).
     
      记住:
        如果你要用一个最新版本的替代你原来的版本,要先停止tomcat,在删除<tomcat安装目录>/webapps/soap下
        所有东西,删除<tomcat安装目录>/webapps下soap.war,然后将你的新的soap.war放在此目录下。
  


  方法二: 在tomcat的server.xml文件中创建一新的目录。
          如:
              <Context path="/soap" docBase="path-to-apache-soap/webapps/soap" debug="1" reloadable="true"> </Context>
  
           确保所需的jar 文件已经在你的classpath中,启动tomcat

重申一下:这里的classpath不光包括xerces.jar,还有上文提到的mail.jar,activation.jar,xml4j.jar
           而且xerces.jar必须在xml4j.jar前

如我用的是NT下的tomcat3.2,在tomcat.bat 的第69行我是这样设的:

set CP=%TOMCAT_HOME%\lib\xerces.jar;%TOMCAT_HOME%\lib\mail.jar;%TOMCAT_HOME%\lib\activation.jar;%TOMCAT_HOME%\lib\xml4j.jar;%CLASSPATH%;%CP%


  

访问 Apache Soap:
  在浏览器里输入:
    http://localhost:8080/soap

就看到了可爱的:
    Hello! Welcome to Apache-SOAP.


测试服务器端安装
    在浏览器里输入
    http://localhost:8080/soap/servlet/rpcrouter
   
   浏览器应该响应如下:
     Sorry, I don@#t speak via HTTP GET- you have to use HTTP POST to talk to me.


   如果你看不到以上信息,说明你的配置有问题。如果你能够看到
   你应该知道你的router rpc地址了。即: http://localhost:8080/soap/servlet/rpcrouter



测试你的服务器和客户端是否安装了所有的必须安装的东西:

  为测试方便,我建了2个bat文件
   soapEnv.bat,(用来设置客户端的classpath)内容如下:
              set classpath=%classpath%;D:\tomcat\webapps\soap\WEB-INF\classes;
              set classpath=%classpath%;d:\tomcat\lib\xerces_1_4_0.jar;
              set classpath=%classpath%;d:\tomcat\lib\mail.jar;
              set classpath=%classpath%;d:\tomcat\lib\activation.jar;
              set classpath=%classpath%;d:\tomcat\lib\xml4j_1_1_16.jar;
              
  soapTest.bat:(用刚才的router rpc地址)
        java org.apache.soap.server.ServiceManagerClient   http://localhost:8080/soap/servlet/rpcrouter list
              
然后运行:
    c>soapEnv.bat
    c>soapTest.bat
    C:\>java org.apache.soap.server.ServiceManagerClient   http://localhost:8080/soap/servlet/rpcrouter list
          
         Deployed Services:


如果,在你的机器上得到一串url例表,或没有东西,因为还没有加载服务(如上示)

说明你的环境已完全配置成功。



原文转自:http://www.ltesting.net