需要:
将axis2-1.4.1-war.zip
此时会自动安装Axi2。出现如下页面
![用AXIS2 <wbr>调用.NET <wbr>webServices 用AXIS2 <wbr>调用.NET <wbr>webServices](https://i-blog.csdnimg.cn/blog_migrate/d08786f914bf44dc2514b8c712a0834b.jpeg)
如果没出现就说明没安装成功!
二.采用无配置的方式建立WebServices客户端1.解压axis2-1.4.1-bin.zip在里面找到bin\java2wsdl.bat 运行
进入DOS。CD到axis2-1.4.1-bin.zip的bin\
再敲入:wsdl2java -uri http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl -p cn.com.WebXml -s -o stub
其中
-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。
-p参数指定了生成的Java类的包名(和你要放的包名同名),
-o参数指定了生成的一系列文件保存的根目录。
在执行完上面的命令后,就会发现在当前目录下多了个stub目录,stub目录可以找到一个.java文件(文件名和你建的WebServices的类名有关),该文件复杂调用WebService。
2.将上述产生的.java类文件拷进你的JavaProject里面。引入axis2-1.4.1-bin.zip解压后的Lib目录的所有包(其实可以全导入。但是我不知道要哪几个。没研究。哥敲的是代码,打出的是寂寞)。
然后新建一个工作类。如下: 全文转自网络 以下改成网络中可用的代码
try {
MobileCodeWSStub stub = new MobileCodeWSStub(
"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx");// 指点ws地址
stub._getServiceClient().getOptions()
.setTimeOutInMilliSeconds(1000 * 60 * 3);// 设置超时时长 单位毫秒
MobileCodeWSStub.GetMobileCodeInfo gci = new MobileCodeWSStub.GetMobileCodeInfo();// 获得具体方法对象
gci.setMobileCode(mobile);// 设置参数
String str = stub.getMobileCodeInfo(gci)
.getGetMobileCodeInfoResult();// 获取结果
// ,以下为特殊处理,一般到此java调用.net的webService结束!
str = str.replace(":", " "); // 根据返回结果进行特殊处理
str += "\r\n";
System.out.println(str);
return str;
} catch (Exception ex) {
ex.printStackTrace();
String str = mobile + "\r\n异常\r\n异常\r\n异常\r\n";// 如果异常,返回mobile异常
return str;
}
到这里Java掉用Java的WebServices就已经完工了。
但是调用.NET的WebServices还有问题。在axis中使用的是HTTP/1.0协议,而.NET和axis2使用的是HTTP/1.1协议,后两者的区别在于.NET未使用ns1的命名空间前缀打包SOAP请求,且axis2使用了Content-Encoding:chunked头。
解决方法:修改了生成.JAVA类带(ConfigurationContext
![用AXIS2 <wbr>调用.NET <wbr>webServices 用AXIS2 <wbr>调用.NET <wbr>webServices](https://i-blog.csdnimg.cn/blog_migrate/5e25210e6b1b566e820832a300967e00.jpeg)
最后特别提醒:如果使用.net创建的Web Service,在名称空间的指定上需要注意一下,指定的名称空间将作为java 创建web service client的package,如名称空间定义如下:
[WebService(Namespace = "http://longrise.com/")]
Java中的package就是:package com..longrise;
关键的两点: 上面两个必须修改,如不修改则显示read time out