WebService 的部署方法
By 龚哲(Bruce)
分为安装和部署两个步骤:
安装: 安装又分为服务器端(TOMCAT)安装和客户端(系统环境)安装。
服务器端(TOMCAT):
1、将axis.war(axis工具包的压缩后文件)拷贝至%TOMCAT_HOME%\webapps目录下。
2、点击:http://localhost:8080/axis,TOMCAT自动在axis.war的同目录生成同名文件夹,浏览器访问的内容就来源于此。页面成功打开就代表配置成功!
3、点击Validation后进入页面,只要Needed Components都到齐了,没有报错就OK。(说路径没找到也行的)
4、点击List查看已经在该TOMCAT上发布的WebService。
客户端(系统环境):
如果是用IDE开发的话,就不需要这步了,直接导入%AXIS_LIB%里面的jar包就行。
此步骤针对于DOS环境下解释运行Java客户端的应用。如果要在客户端中用到相应的类(如Service、Call),必须将%AXIS_LIB%里面的包的路径全部加入到系统设置的classpath中,其实际效果与在IDE中直接导包是一样的。
部署: 部署主要有两种方法:JWS法和jar包导入法。
JWS法:
首先要说明,这是一种十分简陋及原始的方法,不适合进行大项目的设置。但是能迅速令你看到WebService的喜人成果。
1、将你要部署在服务器上的应用MyCalculator.java(包含加减乘除方法)直接拷贝至%TOMCAT_HOME%\webapps\axis目录下,后缀名改为.jws。
2、点击:http://localhost:8080/axis/MyCalculator.jws,如果成功显示出界面,则表示服务应用部署成功。
3、DOS环境下,编译和运行客户端:CalcClient.java如果结果正常,那就表明部署成功了。
Jar包导入法:
1、将一个应用类抽象出接口,并编译他们,使他们在DOS下,可以直接在classpath下被访问。
2、根据接口,生成WSDL Service Descriptor。要用到axis包中的Java2WSDL工具。
在DOS环境中写下如下命令:
java org.apache.axis.wsdl.Java2WSDL -o calculator.wsdl(要生成的WSDL文件名)
-n http://www.tmax.cn/ws(在XML文件中会用到的命名空间)
-l http://localhost:8080/axis/services/Calculator(部署的位置) tmax.Calculator(类的引用名)
命令执行后,会有一个calculator.wsdl文件出现在与tmax文件夹同目录的文件夹中。
3、根据WSDL生成stub,stub可以把我们的服务应用绑定到axis框架中,他们生成后会与服务应用的.java文件在一起,用于向axis框架解释如何执行应用文件。
java org.apache.axis.wsdl.WSDL2Java -o ./ -p tmax -s calculator.wsdl
记住DOS一定要保持在tmax的父文件夹目录下。
Calculator_PortType: Defines the remote interface to the service.
4、打开stub中以SoapBindingImpl结尾的文件,然后修改它每个类的返回值,改成托管类型。最后再编译所有的java文件一次。
5、打包tmax中的类文件:
jar -cf calc.jar tmax/*.class
然后就能在与tmax同目录下看到一个名字为calc.jar的jar包。
6、拷贝jar包到%TOMCAT_HOME%\webapps\axis\WEB-INF\lib中:
copy calc.jar "%TOMCAT_HOME%\webapps\axis\WEB-INF\lib"
7、用AdminClient工具来部署该jar包(因为jar包已经拷入类库中,所以可以直接通过包名直接调用):
java org.apache.axis.client.AdminClient tmax/deploy.wsdd
8、当部署好了后,就是用客户端进行测试了。随便建立一个目录,根据WebService的URL,在该目录中生成一个包,在包中,生成所有的stub(本地的Webservice描述器):
java org.apache.axis.wsdl.WSDL2Java -o ./ -p tmax -s
http://localhost:8080/axis/services/Calculator?wsdl
9、建立一个新的客户端java文件,里面的main函数中写如下代码:
public static void main(String [] args) {
CalculatorService service = new CalculatorServiceLocator();
Calculator_PortType calc;
try {
calc = service.getCalculator();
int i = calc.add( 15 , 6 );
int j = calc.subtract( 15 , 6 );
System.out.println( " 15 + 6 = " + i);
System.out.println( " 15 - 6 = " + j);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行,得到相应结果即为成功!
要看如何用Eclipse依靠插件的方法生成aar文件来配置webservice: