关于webservice传递参数的问题

gaohongtao_2005 2010-04-15 11:31:29
各位:我想用java调用.net的webservice

webservice的代码如下:

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什么值,结果都是“欢迎您:先生”,也就是参数没传过去
这是为什么呢?
...全文
1007 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
from_null 2010-04-20
  • 打赏
  • 举报
回复
call.addParameter("userID", XMLType.XSD_STRING, ParameterMode.IN);
参数需要这样写new Object{"first","second","third"}
newplayerone 2010-04-19
  • 打赏
  • 举报
回复
难道服务器端没有给你报文吗?? 参数的传递不都是通过报文来封装和传递的吗?

本地的调用程序 楼主不是用工具做成的?? 很是奇怪
gaohongtao_2005 2010-04-19
  • 打赏
  • 举报
回复
我不太明白您说的那个SOAPUI怎么用 您能说具体点吗?

或者还有什么别的方法吗?
liulanghan110 2010-04-15
  • 打赏
  • 举报
回复
你先用SOAPUI测试下吧,看能不能得到userID的值
gaohongtao_2005 2010-04-15
  • 打赏
  • 举报
回复
能用的啊 HelloWorld方法可以调用的
liulanghan110 2010-04-15
  • 打赏
  • 举报
回复
服务发布成功了么?你用soapUI先测试一下你的服务是否可用么,如果在SOAPUI中都有问题,那JAVA代码也不用写了

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧