各位:我想用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什么值,结果都是“欢迎您:先生”,也就是参数没传过去
这是为什么呢?

解决方案 »

  1.   

    服务发布成功了么?你用soapUI先测试一下你的服务是否可用么,如果在SOAPUI中都有问题,那JAVA代码也不用写了
      

  2.   

    能用的啊 HelloWorld方法可以调用的
      

  3.   

    你先用SOAPUI测试下吧,看能不能得到userID的值
      

  4.   

    我不太明白您说的那个SOAPUI怎么用 您能说具体点吗?或者还有什么别的方法吗?
      

  5.   

    call.addParameter("userID", XMLType.XSD_STRING, ParameterMode.IN);
    参数需要这样写new Object{"first","second","third"}