各位:我想用java调用.net的webservicewebservice的代码如下:using System;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
public Service() { //如果使用设计的组件,请取消注释以下行
//InitializeComponent();
} [WebMethod]
public string HelloWorld() {
return "你好你好";
} [WebMethod]
public string MyMethod(String userID)
{
return "欢迎您:" + userID +"先生";
}
}
java调用的代码如下public void test(String userID)
{
try
{
String endpoint = "http://localhost:3474/MyWebService/Service.asmx";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
//call.setOperationName(new QName(endpoint,"MyMethod"));
call.setOperationName("MyMethod");
//call.addParameter("mypar", org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);
call.addParameter("userID", XMLType.XSD_STRING, ParameterMode.IN);
//call.addParameter("alarmHours", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/MyMethod");
String result = (String)call.invoke(new Object[]{ userID });
System.out.println("显示结果——>"+result);
}
catch(Exception ex)
{
System.out.println("Error: "+ex);
}
}但是 不论我给userID什么值,结果都是“欢迎您:先生”,也就是参数没传过去
这是为什么呢?
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
public Service() { //如果使用设计的组件,请取消注释以下行
//InitializeComponent();
} [WebMethod]
public string HelloWorld() {
return "你好你好";
} [WebMethod]
public string MyMethod(String userID)
{
return "欢迎您:" + userID +"先生";
}
}
java调用的代码如下public void test(String userID)
{
try
{
String endpoint = "http://localhost:3474/MyWebService/Service.asmx";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
//call.setOperationName(new QName(endpoint,"MyMethod"));
call.setOperationName("MyMethod");
//call.addParameter("mypar", org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);
call.addParameter("userID", XMLType.XSD_STRING, ParameterMode.IN);
//call.addParameter("alarmHours", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/MyMethod");
String result = (String)call.invoke(new Object[]{ userID });
System.out.println("显示结果——>"+result);
}
catch(Exception ex)
{
System.out.println("Error: "+ex);
}
}但是 不论我给userID什么值,结果都是“欢迎您:先生”,也就是参数没传过去
这是为什么呢?
参数需要这样写new Object{"first","second","third"}