加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService的发布及调用demo

发布时间:2020-12-16 23:21:17 所属栏目:安全 来源:网络整理
导读: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? 下的所

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?方式引入

3src下面新建javacom.ws.test.HelloService,代码如下

?

package?com.ws.test;

public?class?HelloService?{

?

public?String?greeting(String?name){

return?"hello:"?+?name;

}

}

?

4在src?下面新建文件夹?META-INF

5META-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发布webservice

1新建web?Project?

2同样引入axis2的所有jar

3WEB-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>

?

6web工程发布到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的发布及调用就已经完成

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读