admin 管理员组文章数量: 1086019
2024年3月1日发(作者:median函数的使用方法)
四种客户端调用WEBSERVICE
王凡
Woshiwangfan@
Wf141732@
2009-08-22
File Ref:
目录
1.
文档概述 ..................................................................................................................... 2
1.1.
相关文档 .............................................................................................................. 2
2.
SERVER端 .................................................................................................................. 3
2.1.
代码 ...................................................................................................................... 3
2.2.
SERVER端生成Wsdl .......................................................................................... 4
2.3.
服务端安全性设置 .............................................................................................. 6
3.
VB调用 ...................................................................................................................... 13
3.1.
准备 .................................................................................................................... 13
4.
.net调用 .................................................................................................................... 16
4.1.
实现过程 ............................................................................................................ 16
5.
Axis2调用 ................................................................................................................. 17
5.1.
Axis2的安装 ...................................................................................................... 17
5.2.
Axis2调用过程 .................................................................................................. 17
6.
Weblogic调用........................................................................................................... 21
6.1.
Weblogic ........................................................................................................... 21
7.
已解决及未解决的问题 ........................................................... 错误!未定义书签。
7.1.
未解决的问题 .................................................................... 错误!未定义书签。
7.2.
已解决的问题 .................................................................... 错误!未定义书签。
文档概述
1. 文档概述
1.1. 相关文档
《Web Services开发教程.doc》
File Ref:
文档概述
2. SERVER端
这个主要是用weblogic的workshop开发,用weblogic开发webservice具体可见沈辉的《Web Services开发教程.doc》,这里 主要是讲客户端调用,所以服务端只作罗列。
2.1. 代码
在weblogic中构建webservice可以见《Web Services开发教程.doc》,用于本次测试的File Ref:
Server代码如下:
Model:
package ;
import izable;
public class test implements Serializable {
private static final long serialVersionUID = 1L;
private String NAME;
private int AGE;
public void setNAME(String name)
{
NAME=name;
}
public void setAGE(int age)
{
AGE=age;
}
public String getNAME()
{
return NAME;
}
public int getAGE()
{
return AGE;
}
}
Service代码如下:
public [] hello(String NAME,int AGE) {
[10];
[] t=new
SERVER端
}
for(int i=0;i<10;i++)
{
}
return t;
t[i] = new ();
t[i].setNAME(NAME+i);
t[i].setAGE(AGE+i);
2.2. SERVER端生成Wsdl
在Server端生成的wsd如下:
targetNamespace="cn/com/tsingtao/logistics/service" xmlns="" xmlns:s0="/wsdl/" xmlns:s1="cn/com/tsingtao/logistics/service" xmlns:s2="/wsdl/soap/"> targetNamespace="java:" xmlns:s0="/wsdl/" xmlns:s1="cn/com/tsingtao/logistics/service" xmlns:s2="/wsdl/soap/" xmlns:xs="/2001/XMLSchema"> nillable="true" type="java:test" xmlns:java="java:"/> xmlns:java="java:"/> File Ref: SERVER端 File Ref: targetNamespace="cn/com/tsingtao/logistics/service" xmlns:s0="/wsdl/" xmlns:s1="cn/com/tsingtao/logistics/service" xmlns:s2="/wsdl/soap/" xmlns:xs="/2001/XMLSchema"> xmlns:java="java:"/> SERVER端 transport="/soap/http"/>
2.3. 服务端安全性设置
这个是根据沈辉的《Web Services开发教程.doc》设置的,不作详细说明,只作罗列
2.3.1. 在weblogic中新建用户和用户组
File Ref:
SERVER端
File Ref:
SERVER端
File Ref:
SERVER端
File Ref:
SERVER端
File Ref:
2.3.2. 在webapp中配置安全性
在中添加红色部分
xmlns="/xml/ns/j2ee" xmlns:xsi="/2001/XMLSchema-instance" /xml/ns/j2ee/web-app_2_"> xsi:schemaLocation="/xml/ns/j2ee SERVER端 File Ref:
在中添加红色部分
xmlns:wls="/ns/weblogic/weblogic-web-app" xmlns:xsi="/2001/XMLSchema-instance" /xml/ns/javaee/web-app_2_ xsi:schemaLocation="/xml/ns/javaee /ns/weblogic/weblogic-web-app /ns/weblogic/weblogic-web-app/1.0/">
重新发布后在浏览器中就可以看到了
SERVER端
File Ref:
SERVER端
3. VB调用
3.1. 准备
File Ref:
使用vb6.0调用webservice需要用到SOAP Toolkit,我们选用的是SOAP Toolkit3.0版本。
3.1.1. 插件下载
到/downloads/?familyid=c943c0dd-ceec-4088-9753-86f052ec8450&displaylang=en下载SOAP Toolkit 3.0,直接安装。
3.1.2. VB中添加引用
在VB中添加对插件的引用ProjectReferences
添加如下5个引用
VB调用
3.1.3. 程序代码
VB调用的程序代码如下:
File Ref:
Private Sub Command3_Click()
Dim Serializer As SoapSerializer30
Dim reader As SoapReader30
Dim Connector As SoapConnector30
Dim strParam As String
strParam = "王凡"
'namespace
Const SoapAction = "cn/com/tsingtao/logistics/service"
'wsdl地址
Const END_POINT_URL = "localhost:7001/BSM/test?WSDL"
'新建一个connector对象
Set Connector = New HttpConnector30
ty("EndPointURL") = END_POINT_URL
t
ty("SoapAction") = SoapAction
‘在weblogic中我们使用的是basic认证,在这里添加用户名和密码
ty("AuthPassword") = "wsuserwsuser"
ty("AuthUser") = "wsuser"
ty("WinHTTPAuthScheme") = 1
essage
Set Serializer = New SoapSerializer30
tream
nvelope
ody
‘在这里添加传入的参数,有两个参数NAME和AGE,前面的是方法名,后面的为namespace,在wsdl中标红色的部分。
lement "hello", "cn/com/tsingtao/logistics/service"
lement "NAME"
tring strParam
ment
lement "AGE"
tring 12
ment
ment
y
elope
ed
VB调用
sage
File Ref:
‘reader读入返回的xml对象
Set reader = New SoapReader30
Stream
If Not Is Nothing Then
MsgBox , vbExclamation
Else
Dim results As Variant
results = getResult(reader)
For i = 0 To UBound(results) - 1
MsgBox "Name:" + results(i).Item("NAME") + "," + "Age:" +
results(i).Item("AGE")
Next i
End If
End Sub
‘这个函数将返回的对象组合成一个array
Function getResult(reader As SoapReader30) As Variant
Dim arr() As Object
ReDim arr()
Dim dict
For i = 0 To - 1
Set dict = CreateObject("nary")
For j = 0 To odes(i). - 1
odes(i).childNodes(j).baseName,
odes(i).childNodes(j).Text
Next j
Set arr(i) = dict
Next i
getResult = arr
End Function
VB调用
4. .net调用
4.1. 实现过程
File Ref:
4.1.1. 在.net中添加webservice引用
在Solutions Explorerproject_nameWeb References
4.1.2. 调用代码
.net的代码很简单
rvice request=new rvice();
CredentialCache cache = new CredentialCache();
(new Uri(), "Basic", new NetworkCredential("wsuser",
"wsuserwsuser"));
tials = cache;
[] ts=("wangfan",12);
for(int i=0;i<;i++)
{
("Name:"+ts[i].NAME+"Age:"+ts[i].AGE);
}
.net调用
5. Axis2调用
5.1. Axis2的安装
5.2. Axis2调用过程
File Ref:
5.1.1. 在Eclipse中添加axis2的插件
在eclipse中添加axis2的生成客户端代码的工具,具体可见《Web Services开发教程.doc》
5.2.1. 运行向导生成客户端代码
在浏览器中将localhost:7001/BSM/test?WSDL另存为一个wsdl文件
Axis2调用
File Ref:
在第一次进入这个节目的时候会报红,cancel向导重新打开向导。
Axis2调用
File Ref:
5.2.2. 代码实现
在生成的TestServiceTest类文件中
public void testhello() throws ion {
TestServiceStub stub = new TestServiceStub();
getTestObject();
request = ()
// TODO : Fill in the hello4 here
E("wangfan");
(12);
esponse r=(request);
ftest_literal tl=_return();
[] ts=t();
for(int i=0;i<;i++)
{
Axis2调用
File Ref:
("Name:"+ts[i].getNAME()+";"+"Age:"+ts[i].getAGE()+"n");
}
//assertNotNull((request));
}
运行报错
ult: Transport error: 401 Error: Unauthorized
5.2.3. Axis2的安全认证设置
单击进入hello方法,找到_operationClient
public esponse hello(
hello0)
throws Exception
{
eContext _messageContext = null;
try {
_serviceClient .createClient(_operations[0].getName());
ionClient _operationClient =
_ions().setAction("""");
_ions().setExceptionToBeThrownOnSOAPFault(rue);
basicAuthentication = new ticator();
ticator
rname("wsuser");
sword("wsuserwsuser");
_ions().setProperty(
TICATE, basicAuthentication);
红色部分为新增的认证信息 。
Axis2调用
6. Weblogic调用
6.1. Weblogic
File Ref:
具体可以见《Web Services开发教程.doc》
6.1.1. 生成jar
在服务器的代码中生存wsdl
将wsdl生成jar
Weblogic调用
File Ref:
6.1.2. 在新建的项目中添加jar引用
按以下步骤进行:
1. 在
2. 选择项目,右键打开属性对话框,在ClassPath标签页中,删除"WebLogic System
Library"
3. 单击"Add External Jars",将第一步解压的所有jar都添加进行
4. 添加ant的类库到项目中
5. 重新运行上面的客户端调用代码,此时执行就能正确
6.1.3. 代码实现
HttpTransportInfo info = new HttpTransportInfo();
rname("wsuser".getBytes());
sword("wsuserwsuser".getBytes());
TestService_Impl("127.0.0.1:7001/BSM/test?WSDL",info);
TestService_Impl im=new
Weblogic调用
Test_Stub t=(Test_Stub) tSoapPort();
ArrayOftest_Literal tl=("wangfanwf", 12);
Test[] ts=t();
for(int i=0;i<;i++)
{
("Name:"+ts[i].getNAME()+";"+"Age:"+ts[i].getAGE()+"n");
File Ref:
}
Weblogic调用
版权声明:本文标题:四种方式调用webservice 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1709248812a541346.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论