您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > AxisWebServices开发部署
WebService更多是一种标准,而不是一种具体的技术。不同的平台,不同的语言大都提供WebService的开发实现。在Java领域,WebService的一个成熟实现是Axis。qAxis是Apache的一个开源WebService引擎,它是目前最为成熟的开源WebService引擎之一。qApacheAxis是符合W3C的SOAP协议的实现。q该项目是属于ApacheSOAP协议的子项目。14.6.1.1Axis的下载登陆站点,Axis的最新版本是1.4,笔者的示例程序都是基于该版本完成。下载到axis-bin-1_4.zip文件,解压缩该文件,发现如下的文件结构:qdocs:存放Axis的说明文档。qlib:存放Axis的二进制发布包。qsamples:存放利用Axis发布WebService的示例代码。qwebapps:存放安装Axis的基础应用。qxmls:存放相关配置文档。q还有LICENSE等相关说明文档。14.6.1.2Axis的安装安装Axis,首先必须保证系统已经正确安装了Web服务器,笔者使用Tomcat5.0.28。也可使用其他应用服务器,例如WebLogic。webapps下的axis路径全部复制到Tomcat的webapps路径下。然后打开浏览器,输入:。如果出现如图14.3所示界面表示Axis的基本类库已经安装成功,地址中的8888是笔者的Tomcat的端口。单击如图14.3所示页面的左上方“Validation”链接,出现如图14.4所示界面:图14.3Axis安装成功界面图14.4Axis校验界面该页面显示Axis的必需组件还缺少一个没有安装,两个可选组件也没有安装,单击上面的提示链接,分别登陆:q://java.sun.com/products/javamail/q依次下载如下三个压缩文件:qjaf-1_1-fr.zipqjavamail-1_4.zipqxml-security-bin-1_2_1.zip将这三个压缩文件解压缩。将jaf-1_1-fr.zip压缩包中的activation.jar文件,复制到axis应用的WEB-INF\lib下;将javamail-1_4.zip压缩包中的mail.jar文件,复制到axis应用的WEB-INF/lib下;再将xml-security-bin-1_2_1.zip的lib下xmlsec-1.2.1.jar和xalan.jar文件,复制到WEB-INF/lib下。再次校验Axis,看到页面提示全部安装成功。14.6.1.3开发自己的WebService完成了前面的部署后,就可以开始开发自己的WebService了。首先编写需要提供服务的类,该类不需要实现任何接口,也不需要继承任何父类,只需要是POJO即可。Axis支持将普通方法暴露成WebService。看如下的服务类://服务类,应该声明为publicpublicclassHello{//服务方法publicStringhello(){returnhello,+name+,WelcometoAxis;}}该类简单得难以置信,但正是个简单的类,它可以提供WebService。将该类的文件名存为Hello.jws。注意:不是java后缀,而是jws后缀。将该文件放入axis应用的根路径下,也就是与WEB-INF同一级路径,然后重启动Tomcat,或者在Tomcat控制台重新加载axis应用。然后,打开浏览器输入如下地址:看到如图14.5所示界面:图14.5HelloWebService这表示该WebService发布成功,单击“ClicktoseetheWSDL”链接,可查看该WebService的WSDL描述。成功发布的WebSerivice通过网络访问,因为SOAP协议基于HTTP协议,因此WebService可以在互联网上访问。访问该WebService的客户端代码如下:publicclassWebServiceClient{//程序的入口publicstaticvoidmain(Stringargs[]){System.out.println(开始调用WebService);try{//WebService所在的urlStringendpoint=创建Serivce对象,Service对用用于创建Call对象Serviceservice=newService();//创建Call对象,Call对象用于调用服务Callcall=(Call)service.createCall();为Call对象设置WebService的urlcall.setTargetEndpointAddress(newjava.net.URL(endpoint));//为Call对象设置调用的方法名call.setOperationName(hello);//调用WebService的方法,并获得返回值Strings=(String)call.invoke(newObject[]{中国人});//输出返回值System.out.println(s);}catch(Exceptione){System.out.println(e.toString());}System.out.println(调用WebService正常结束);}}借助于Axis可以将POJO发布成WebService,远程客户端不需要任何接口或类,因为远程客户端直接调用方法,直接使用Call对象调用方法。如果要传List之类的需要序列化了才可以的
本文标题:AxisWebServices开发部署
链接地址:https://www.777doc.com/doc-2899455 .html