WebService的发布及调用demo
1下载相关文件1下载地址:http://axis.apache.org/axis2/java/core/download.cgi 2此处下载的是axis2-1.6.2-bin.zip?及?axis2-1.6.2-war.zip 3解压??axis2-1.6.2-war.zip?获取到?axis2.war 4再解压?axis2.war获取?axis2WEB-INFlib?下的所有jar?,用于下面的工程 ? 2生成aar包1新建java?Project 2添加上面获取的jar文件,这里以add?user?libraries?方式引入 3在src下面新建java类com.ws.test.HelloService,代码如下 ? package?com.ws.test; public?class?HelloService?{ ? public?String?greeting(String?name){ return?"hello:"?+?name; } } ? 4在src?下面新建文件夹?META-INF 5在META-INF下新建services.xml,配置内容如下: ? <?xml?version="1.0"?encoding="UTF-8"?> <service?name="HelloService"?scope="application"><!--?服务名称?--> ????description>??<!--?服务描述?--> ????????This?is?Hello?Service ????</> ????messageReceivers> ????????messageReceiver??mep="http://www.w3.org/2004/08/wsdl/in-only" ????class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> ????????messageReceiver?"http://www.w3.org/2004/08/wsdl/in-out" ????"org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> ????parameter?"ServiceClass"<!--?服务对应的java类?--> ????????com.ws.test.HelloService ????parameter> service? 6选中项目,右键-Export-JAR?File,将导出工程命名为?HelloService.aar,这样就获取到了aar包。 工程目录结构如下图: ? ? 3发布webservice1新建web?Project? 2同样引入axis2的所有jar包 3在WEB-INF下新建services文件夹 4将之前生成的aar包放入services文件夹下 5修改web.xml文件,代码如下: ? web-app?"2.5"? xmlns="http://java.sun.com/xml/ns/javaee"? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> ??display-name></> ??welcome-file-listwelcome-file>index.jsp> ?? ????servletservlet-name>AxisServletservlet-class>org.apache.axis2.transport.http.AxisServletload-on-startup>1servlet-mappingurl-pattern>/servlet/AxisServlet>*.jws>/services/*mime-mappingextension>incmime-type>text/plain> ? web-app> ? 6将web工程发布到tomcat上 7在浏览器地址栏中访问:http://localhost:8080/ws/services/HelloService?wsdl 出现以下界面说明发布成功 ? 4调用webservice在web工程src下添加com.caicai.test.Test?测试类 代码如下: ? package?com.caicai.test; ? import?javax.xml.namespace.QName; import?org.apache.axis2.AxisFault; import?org.apache.axis2.addressing.EndpointReference; import?org.apache.axis2.client.Options; import?org.apache.axis2.rpc.client.RPCServiceClient; ? class?Test?{ static?void?main(String[]?args)?throws?AxisFault??{ //??使用RPC方式调用WebService???????? ????????RPCServiceClient?serviceClient?=?new?RPCServiceClient(); ????????Options?options?=?serviceClient.getOptions(); ????????//??指定调用WebService的URL ????????EndpointReference?targetEPR?=?new?EndpointReference( ????????????????"http://localhost:8080/ws/services/HelloService"); ????????options.setTo(targetEPR); ????????//??指定getGreeting方法的参数值 ????????Object[]?opAddEntryArgs?=?new?Object[]?{"李彩彩"}; ????????//??指定getGreeting方法返回值的数据类型的Class对象 ????????Class[]?classes?=?new?Class[]?{String.class}; ????????//??指定要调用的greeting方法及WSDL文件的命名空间 ????????QName?opAddEntry?=?new?QName("http://test.ws.com",?"greeting"); ????????//??调用getGreeting方法并输出该方法的返回值 ????????System.out.println(serviceClient.invokeBlocking(opAddEntry,?opAddEntryArgs,?classes)[0]); ????}? ? } ? 右键-run?as?java?application,控制台输出如下,访问成功 ? Web工程结构图如下: ? 至此,webservice的发布及调用就已经完成 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |