WEBSERVICE接口实例说明文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WebService接口说明文档
文档说明
本文档主要讲述如何用C Sharp创建一个简单的Web Service接口,并使用Java调用这个Web Service接口。
准备工作
系统环境:安装JDK1.6或更新版本
开发工具:Microsoft Visual Studio2012、MyEclipse10.5、axis2-1.6.2
C Sharp服务端
1.首先,创建一个Web Service项目。依次点击:文件—新建—项目,在弹出的新建项目窗口中选择
Web下的空Web应用程序。如下图:
2.接下来我们需要创建我们的Web Service接口实现文件。鼠标右击我们的项目,依次点击:添加—新
建项,在弹出窗口中选择Web服务。可修改新建项的文件名,注意文件名后缀后.asmx。如下图:
新建完成后我们的项目结构如下:
3.打开我们新建的MyService.asmx下的MyService.asmx.cs文件,可以看到其中已经有默认的Hello
World方法。
我们可以直接运行查看下运行的效果,效果如下图:
点击HelloWorld,再点击调用可以看到页面返回:
4.接下来我们完善我们的Web Service接口功能。主要对Web Service接口进行参数类型的测试,文本
型、布尔型、数值型、类(Class)等。
新增Add()等运算方法:
新增strcat()连接字符串方法:
新增GetBool()返回布尔值方法:
新增GetTest()返回测试类,并新增Test类
运行我们的项目,可以看到我们的结果如下图:
点击add方法测试:
输入add的参数i和j点击调用按钮,可以看到返回计算结果:
5.到此为止我们C Sharp创建的Web Service程序完成。接下来看Java如何调用我们的Web Service接
口。
Java调用Web Service
准备
对于一个Web Service接口我们当前只知道访问的地址,我们如何用Java去访问接口呢?
已知Web Service接口地址:http://localhost:11766/MyService.asmx?WSDL
Java调用Web Service的方式有以下
1.使用HttpClient
2.使用Xfire
3.使用axis2
本文档示例选择的是axis2,首先到axis2网站下载axis2,网址:
/axis2/java/core/download.cgi当前最新版本1.6.2。下载完成后解压。
打开命令提示符窗口,进入D:\axis2-1.6.2\bin运行wsdl2java.bat-
uri http://localhost:11766/MyService.asmx?WSDL-p ws.clinet.axis2
命令执行完后,会在当前目录下生成一个src目录:
wsdl2java会根据WSDL文件生成web服务的调用接口,参数类,返回值的类。在调用Web Service的时候直接实例化一个MyServiceStub的对象,然后调用Web服务的方法就可以了。
将src目录拷贝至我们Java项目的src中,把axis2-1.6.2\bin\lib中的jar包拷贝至我们Java项目中,准备工作就完成了。
Java代码
ServiceClient.java
package com.upower.webservice;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import ws.clinet.axis2.MyServiceStub;
public class ServiceClient{
static MyServiceStub stub=null;
private static String wsdlUrl="http://localhost:11766/MyService.asmx";
public static void main(String[]args){
try{
stub=new MyServiceStub(wsdlUrl);
MyServiceStub.HelloWorld h=new MyServiceStub.HelloWorld();
MyServiceStub.HelloWorldResponse hr=stub.helloWorld(h);
System.out.println("Hello World!程序测试!");
System.out.println("输出:"+hr.getHelloWorldResult());
System.out.println("");
MyServiceStub.Add add=new MyServiceStub.Add();
add.setI(100);
add.setJ(130);
MyServiceStub.AddResponse addr=stub.add(add);
System.out.println("数值传输测试!");
System.out.println("加法:100+130="+addr.getAddResult());
System.out.println("");
MyServiceStub.GetTest test=new MyServiceStub.GetTest();
MyServiceStub.GetTestResponse testr=stub.getTest(test);
MyServiceStub.Test t=new MyServiceStub.Test();
t=testr.getGetTestResult();
System.out.println("类测试!");
System.out.println("姓名:"+t.getName());
System.out.println("性别:"+(t.getSex()?"女":"男"));
System.out.println("年龄:"+t.getAge());
System.out.println("");
MyServiceStub.Strcat st=new MyServiceStub.Strcat();
st.setA("abc");
st.setB("123");
MyServiceStub.StrcatResponse str=stub.strcat(st);
System.out.println("连接字符串:abc"+"123="+
str.getStrcatResult());
}catch(AxisFault e){
e.printStackTrace();
}catch(RemoteException e){
e.printStackTrace();
}
}
}