如何发布webservice服务

如何发布webservice服务,第1张

如何发布一个Web服务:
a,在类上添加@WebService注解
(注:此注解是jdk16提供的,位于javaxjwsWebService包中)
b,通过EndPoint(端点服务)发布一个WebService
(注:EndPoint是jdk提供的一个专门用于发布服务的类,该类的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。位于 javaxxmlwsEndpoint包中)
c,注:
类上添加注解@WebService,类中所有非静态方法都会被发布;
静态方法和final方法不能被发布;
方法上加@WebMentod(exclude=true)后,此方法不被发布;
(3)客户端访问发布的服务
根据WSDL文档来在客户端编写代码,访问发布的服务;
但是,WSDL文档看不懂怎么办?代码该如何编写?
——你看不懂,JDK看得懂,wsimport是JDK自带的,可以根据WSDL文档生成客户端调用代码的工具。无论服务器端WebService使用什么语言编写的,豆浆在客户端生成Java代码。所以服务器用什么语言编写的并不重要。
wsimportexe命令参数熟知:
-d:生成class文件。默认参数。
-s:生成Java文件
-p:自定义包结构

下面使用KSOAP2的步骤来编写调用WebService的客户端程序,代码如下:
1
//new
一个连接Webservice的类,这个类下面给出。webserviceUrl为//Webservice的连接地址,nameSpace为命名空间
2
private
ConWebService
conWebService
=
new
ConWebService(
3
webserviceUrl
,nameSpace);
4
5
//给出一个中间层调用的方法,返还String数组
6
public
ArrayList<String>
getDate(String
key)
7
{
8
ArrayList<String>
arrayList
=
new
ArrayList<String>();
9
//添加参数,这个参数可以是多个循环添加即可
10
//如
11
//PropertyInfo
pro[]
=
new
PropertyInfo[2];
12
//for
(int
i
=
0;
i
<
2;
i++)
13
//{
14
//pro[i]
=
new
PropertyInfo();
15
//}
16
//pro[0]setName("sqlName");
17
//pro[0]setValue(sqlName);
18
//pro[1]setName("date");
19
//pro[1]setValue(date);
20
PropertyInfo
pro
=
new
PropertyInfo();
21
prosetName("key");
22
prosetValue(key);
23
arrayList
=conWebServicegetSoapData("getData",
pro);
24
return
arrayList;
25
}
下面的这个ConWebservice类是主要实现获取数据的功能了。给出关键代码
1
public
ArrayList<String>
getSoapData(String
methodName,
PropertyInfo
pros)
2
{
3
ArrayList<String>
resultList
=
new
ArrayList<String>();
4
5
//1创建SoapObject对象,并指定WebService的命名空间和调用的方法名
6
SoapObject
soapObject
=
new
SoapObject(NameSpace,
methodName);
7
8
//2设置SoapAction
9
soapAction
=
NameSpace
+
methodName;
10
11
//2设置WebService方法的参数(以不定参数为例)
12
if
(proslength
>
0)
13
{
14
for
(PropertyInfo
pro
:
pros)
15
{
16
soapObjectaddProperty(pro);
17
}
18
}
19
//创建SoapSerializationEnvelope对象,生成调用WebService方法的SOAP请求信息,并指定WebService
Soap协议的版本
20
SoapSerializationEnvelope
envelope
=
new
SoapSerializationEnvelope(
SoapEnvelopeVER12
);
21
22
23
//设置bodyOut属性
(SoapEnvelope类中,设置发送的数据和接收数据,分别使用方法:bodyOut,bodyIn)
24
envelopebodyOut
=
soapObject;
25
26
//
设置是否调用的是DotNet开发的WebService
27
envelopedotNet
=
true;
28
29
//创建>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13470177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-13
下一篇 2023-08-13

发表评论

登录后才能评论

评论列表(0条)

保存