JAVA调用.net webservice揭示参数为空

JAVA调用.net webservice提示参数为空
最近在调试JAVA调用.net webservice接口时,老是碰到一个问题,提示参数为空,解析不了。

<errorDesc>值不能为空。参数名: s</errorDesc>

上面是接口返回的错误,实际上.net webservice内部测试是没问题的。

而JAVA如果调用.NET 没带参数的接口,也能正常调用。

纠结死了,看了网上说要给参数加上命名空间啥的,我已经加上了,还是提示参数空。

求各位高手帮忙指导一下啊,万分感激。

下面贴上我的代码,

public String retrieveDocument(String userName,String userPassword,String xmlParam) throws Exception{

String result = "dd";
Service service = new Service();
Call call = (Call) service.createCall();
 
// 设置请求的URL
call.setTargetEndpointAddress(new URL(
"http://localhost/henandhip/services/DocumentRegistry_Service.asmx"));
 
//设置请求的方法
call.setOperationName(new QName(NAMESPACE, "retrieveDocument"));

//设置方法的参数
call.addParameter(new QName(NAMESPACE,"userName"), XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(NAMESPACE,"userPassword"), XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(NAMESPACE,"xmlParam"), XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
 
// 设置方法的返回值类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
 
call.setUseSOAPAction(true);
// 设置SOAPAction
call.setSOAPActionURI(NAMESPACE + "retrieveDocument");

result = (String) call.invoke(new Object[] { userName, userPassword,xmlParam});  
return result;
}

------解决方案--------------------
用Fiddler比较一下.Net和java客户端发送的数据的差异
------解决方案--------------------
我也是、求指教啊、
------解决方案--------------------
楼主 是怎么解决的呀 我也遇到这样的情况 纠结啊
------解决方案--------------------
后来我也解决了、使用代理类的方式、然后。net端再做相关修改即可
------解决方案--------------------
c#写的service接口,部署测试正常。{注释必须有,不然无法获取xml字符串}

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Services.Description;

[WebService(Namespace = "http://hoteamsoft.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Service : System.Web.Services.WebService
{
public Service () {

//Uncomment the following line if using designed components 
//InitializeComponent(); 
}
//下面的引用关系必须加----begin
[SoapRpcMethod(Action = "http://hoteamsoft.org/HelloWorld1",
RequestNamespace = "http://hoteamsoft.org/T",
ResponseNamespace = "http://hoteamsoft.org/T ",
Use = SoapBindingUse.Literal)]
[WebMethod]
//上面的引用必须加----end
public string HelloWorld1(string obj)
{
return "Hello World =" + obj + " = " + DateTime.Now.ToString();
}

}

java调用的方法如下:

 public String GetMaterial(String xmlString) {

try {
// 指出service所在URL
String endpoint = "http://localhost:81/webService/Service.asmx";
// 创建一个服务(service)调用(call)
Service service = new Service();
Call call = (Call)service.createCall();// 通过service创建call对象
// 设置service所在URL
call.setTargetEndpointAddress(new java.net.URL(endpoint));
//设置要调用的方法
call.setOperationName( new QName( "http://hoteamsoft.org/T","HelloWorld1" ));
//设置该方法需要的参数
call.addParameter("obj" , org.apache.axis.encoding.XMLType.XSD_STRING,