最近做一个接口需要调用.net提供的WebService,调试过程很痛苦,总是出现Server was unable to read request的错误,并且.net服务端怎么都接不到传送的参数,接到的都是null。在网上查了半天资料也没有解决,最后下了个vs2008自己来写.net的服务学习了一下,才把问题搞定。
Rpc风格的.net服务端代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
namespace WebService1
{
[WebService(Namespace = "http://tempuri.org/")]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
[SoapRpcMethod(Action = "http://tempuri.org/hello", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]
public string hello(String s)
{
return "Hello,"+s;
}
}
}
Document风格的.net服务端代码:
namespace WebService1
{
[WebService(Namespace = "http://tempuri.org/")]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string hello(String s)
{
return "Hello,"+s;
}
}
}
java客户端代码:
String url="http://localhost:1117/Service1.asmx";
String namespace = "http://tempuri.org/";
String methodName = "hello";
String soapActionURI = "http://tempuri.org/hello";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url));
call.setUseSOAPAction(true);
//这个地方没设对就会出现Server was unable to read request的错误
call.setSOAPActionURI(soapActionURI);
call.setOperationName(new QName(namespace, methodName));
/*这里如果设置成call.addParameter(new QName(namespace,"s"), XMLType.XSD_STRING,
ParameterMode.IN);就是调用document风格的.net服务端
如果设反了,.net服务端就接不到参数,接到的是null
*/
call.addParameter("s", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
String ret = (String) call.invoke(new Object[] { "kusix" });
System.out.println("返回结果---> " + ret);
如果.net在提供Rpc服务时设置成
[SoapRpcMethod(Action = "",.....
的话,那java客户端连
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapActionURI);
这2句都可以去掉了
分享到:
相关推荐
java axis 调用 .net webservice 短信收发 虽然分要多了些,但是代码注释的很详细,我相信是物有所值的。
java采用axis调用.net写的WebService,WebService的参数有传人和传出,传出的参数为ref,java端ParameterMode.OUT,传人的为ParameterMode.IN,WebService返回值为String,java利用Map取传出参数,对Map进行遍历取得...
Java调用.NET的WebService接口实例,jar包删减到三个,干净清爽,里面包含注多注释和图解,搞了半天的家伙拿出来与大家分享,无任何BUG,修改里面的参数即可直接运行,对于这种好东西,花了半天时间10分不算高,重在...
以前看别人写的,似乎都比较复杂,而且没有提供一个webservice供初学者测试,我找了一个http://www.webservicex.net/globalweather.asmx,根据这个写了一个例子,让新学的少走一些弯路吧
最近开发要做一人用java 调.net webservice的,以上是我用axis1.4写的一个小例子,希望可以借鉴
axis2请求.Net webservice接口,以天气预报getSupportCity接口为例
Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递
借鉴网上的资源,弄了一个SpringBoot开发WebService之Axis示例。
本案例实现使用Axis2生成.arr包发布WebService服务,并使用Axis2生成客户端代码方式调用WebService
当然可以调用任何 wsdl地址。只要是webservice 这里是比较流行的。 这里有2个测试地址。 (1):http://www.webservicex.com/stockquote.asmx<br>(2):...
Java使用axis来调用.net写的asmx WebService,大体步骤如下。 Axis需要用到的包如下: 1. axis.jar 2. commons-discovery-0.2.jar 3. commons-logging-1.0.4.jar 4. jaxrpc.jar 5. wsdl4j-1.5.1.jar java调用的代码...
axis调用第三方webservice接口所需的jar包,包括axis-1.4.jar,axis-jaxrpc-1.3.jar,axis-jaxrpc-1.4.jar,commons-discovery-0.5.jar,commons-logging-1.2.jar,cxf-rt-databinding-jaxb-3.3.1.jar,javax.mail-...
webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例
1、java调用第三方webservice接口时,需要的最少jar包 2、提供一个简单的demo实例供参考,包括将类转化为XML,以及将XML运用axis上传到服务器
java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG
压缩包中包含详细代码以及所用到的jar,是完整可运行的project。当然,需要正确的路径支持才可以运行,本人没有把我所用到的路径贴出,改为本机地址。
java axis 调用C# webService所需的jar包
Java通过Axis2调用SAP的Webservice 生成Java Proxy
Axis2教程和java调用webservice的各种方法总结
axis发布webservice教程axis发布webservice教程axis发布webservice教程axis发布webservice教程