Axis开发WebService(一)
发布时间:2020-12-17 00:37:35 所属栏目:安全 来源:网络整理
导读:一、配置开发环境 1、开发环境是Jdk1.6,Tomcat6.0,MyEclipse8.5 2、首先下载axis1.4,可以在http://xml.apache.org下载。 3、下载的axis压缩包解压后%AXIS_HOME%lib目录下的jar包,放到项目的/WEB-INF/lib目录下,我的项目名是WebService 4、Axis支持三种w
一、配置开发环境
1、开发环境是Jdk1.6,Tomcat6.0,MyEclipse8.5 2、首先下载axis1.4,可以在http://xml.apache.org下载。 3、下载的axis压缩包解压后%AXIS_HOME%lib目录下的jar包,放到项目的/WEB-INF/lib目录下,我的项目名是WebService 4、Axis支持三种web service的部署和开发,分别为: (1)Dynamic Invocation Interface (DII) (2)Dynamic Proxy方式 (3)Stubs方式 在这里只介绍Stubs方式,在工作中这种用得比较多。 二、代码开发 1、项目的web.xml文件添加以下内容: <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> 2、服务端程序:Service.java //这里先介绍传参是java中提供的String类型,以后会介绍传参是自定义的Object类型的。 package com.webservice.service; public class Service { public Service() { } public String doRequest3(String str){ return str.toUpperCase(); } }3、在项目的WEB-INF目录下,创建deploy.wsdd,其内容以下: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="CheckOrder" provider="java:RPC"> <parameter name="className" value="com.webservice.service.Service"/> <parameter name="allowedMethods" value="doRequest3"/> </service> </deployment>其中<parameter name="allowedMethods" value="doRequest3"/>的value值为Service对外访问的接口,这个方法要是public的,如有多个方法用","隔开,如果想Service中所有public类型的方法都可以对外,可以写成:value="*"。 4、在项目(我的项目名为WebService)的WEB-INF目录下,创建deploy.bat,其内容以下: set Axis_Lib=F:JSPprojectWebServiceWEB-INFlib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Axis_Servlet=http://localhost:8000/WebService/services %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd执行这个批文件,用来生成server-config.wsdd。 5、将项目发布到Tomcat,启动Tomat,进入命令行,切换到deploy.bat的目录下,我的是F:JSPprojectWebServiceWebRootWEB-INF 执行deploy.bat,成功后显示: Processing file deploy.wsdd <Admin>Done processing</Admin> 这时,你在%TOMCAT_HOME%webappsWebServiceWEB-INF下多了server-config.wsdd。 6、生成客户端并测试程序 在项目的WEB-INF目录下创建WSDL2Java.bat文件,其内容以下: set Axis_Lib=F:JSPprojectWebServiceWEB-INFlib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=F:JSPprojectWebServicesrc set Package=com.webservice.client %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o %Output_Path% -p %Package% http://localhost:8000/WebService/services/CheckOrder?wsdl其中Output_Path是客户端程序的包路径, 保持Tomcat启动着,命令行切换到WSDL2Java.bat的目录下,执行WSDL2Java.bat,执行完后,刷新下项目的src,你会发现多了包com.webservice.client,包下有CheckOrderSoapBindingStub.java,Service.java,ServiceService.java,ServiceServiceLocator.java。 好了,现在可以测试WebService,程序以下: package com.webservice.test; import java.rmi.RemoteException; import javax.xml.rpc.ServiceException; import org.junit.Test; import com.webservice.client.ServiceService; import com.webservice.client.ServiceServiceLocator; import com.webservice.client.Service; public class WebServiceTest { @Test public void test3() throws ServiceException,RemoteException{ ServiceService serviceService = new ServiceServiceLocator(); Service service = serviceService.getCheckOrder(); String str = service.doRequest3("lam"); System.out.println(str); } }执行后出现:LAM. 好了,简单的WebService成功了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |