axis2创建webservice客户端全过程(调用.net web服务)
来源:互联网 发布:淘宝上架商品没有品牌 编辑:程序博客网 时间:2024/05/01 15:46
运行环境:
myeclipse + tomcat6 + .Net web service
1.下载axis2-1.5-bin.zip
url : http://ws.apache.org/axis2/download.cgi
2.下载Axis2并解压到一个目标目录
3.设置AXIS2_HOME环境变量来指出目标目录
例如:
变量名:AXIS2_HOME
变量值:D:/Program Files/axis2-1.5
4.JAVA_HOME环境变量也不要忘记指定向JDK路径
5.将axis2/lib目录下的jar包添加到自己的项目中。
6.通过Dos命令行生成stub类文件
通过wsdl2java 可能查看用法
调用命令
生成如下文件:
我们发现被生成的文件并不是在Dos当前目录下,是因为此路径还包括了.net WebService 文件的命名空间。
7. 将刚生成的两个文件拷贝至自已的项目下
发现又有错误了,是因为文件里的包名与所在的包是不一致的,改一下包名即可。
这里很郁闷,为什么生成的文件里wsdl路径不保存成常量,而要一个一个地方的改,太不方便了(如果想放到配置文件里)
8.创建调用类StubUserClient
package client;
import java.rmi.RemoteException;
import client.UserServiceStub.ClassA;
import client.UserServiceStub.ClassB;
import client.UserServiceStub.GetDept;
public class StubuserClient
{
/**
* @param args
* @throws RemoteException
*/
public static void main(String[] args) throws RemoteException
{
UserServiceStub stub = new UserServiceStub();
// axis2在做http传输时采用了「chunked」模式,而.net的web server不支持
// 「axis中使用的是HTTP/1.0协议,而.NET和axis2使用的是HTTP/1.1协议,后两者的区别在于
// NET未使用ns1的命名空間前缀打包SOAP請求,且axis2使用了Content- Encoding: chunked头。
// 所以必須在axis2中設置一下。」
stub._getServiceClient().getOptions().setProperty(
org.apache.axis2.transport.http.HTTPConstants.CHUNKED,
Boolean.FALSE);
UserServiceStub.ClassA a = new ClassA();
a.setName("testAAA");
a.setPwd("testPwd");
a.setAge(55);
UserServiceStub.GetDept getDept0 = new GetDept();
getDept0.setA(a);
ClassB b = stub.getDept(getDept0).getGetDeptResult();
System.out.println("Name: " + b.getName() + " Dept: " + b.getDept());
}
}
9. Run as 这个类,成功执行,ok!
附:.net web service 类代码
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://org.zhanglh/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class UserService : System.Web.Services.WebService
{
public UserService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public ClassB GetDept(ClassA a) {
ClassB b = new ClassB();
if (String.IsNullOrEmpty(a.Name))
{
b.Name = "default";
b.Dept = "default";
}
else
{
b.Name = a.Name;
b.Dept = "市场部";
}
return b;
}
}
- axis2创建webservice客户端全过程(调用.net web服务)
- 使用Axis2开发Web服务 --- 客户端调用
- webService 客户端调用 axis2
- WebService客户端Axis2调用
- 使用axis2创建webservice步骤以及客户端调用service服务代码
- axis2客户端调用免费的webservice服务的实例
- webservice之axis2客户端调用(maven方式创建java项目)
- axis2 客户端调用wss4j 安全web服务的方法
- axis2客户端调用免费的webservice服务的实例之三axis2使用RPC方式调用网上免费WebService
- axis2客户端调用免费的webservice服务的实例之二纯手动调用免费天气预报webservice服务
- 用AXIS2发布WebService和客户端调用
- 【webservice】Axis2 客户端调用 设置超时时间
- WebService--使用Axis2创建服务端和客户端
- WebService接口客户端(axis2)
- 客户端调用Webservice服务(SSL)
- axis2 webservice服务开发及调用
- ASP.NET+XML Web服务客户端创建Web服务
- axis2客户端调用免费的webservice服务的实例之一通过wsdl生成客户端程序并本地调用
- >/dev/null 2>&1的含义
- Nginx导致页面发送给错误的用户
- Android应用技巧总结
- 无锡NIIT软件外包学院第20班大爆料!
- struts国际化小结
- axis2创建webservice客户端全过程(调用.net web服务)
- javascript开发系列(多框架)
- /dev/null 2>&1 详解
- 对VS2008生成智能win32程序简单理解
- 漆黑的夜
- 绑定DropDownList控件
- 测试基本术语 (一)
- HttpService 传递参数的方法
- PHP交换数组中的元素和值