*其实,我只是从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例表,或没有东西,因为还没有加载服务(如上示)
说明你的环境已完全配置成功。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/