xfire的client如何对应wsdl中的参数

git_yt 发布于 2015/06/10 15:40
阅读 2K+
收藏 0
初学webservice的内容,wsdl中的某个方法有多个参数,类型不同. 
小弟一般使用xfire的client.invoke("method",new object[]{}); 
可是这种方法在object[]中无法让参数对应到wsdl的描述中。 

请问有没有其他方法实现这个功能呢?

IP地址:http://webservice.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx

接口函数名:getTVprogramString()

输入参数:theTVchannelID = 频道ID(Integer),theDate=日期(String 格式:yyyy-MM-dd,如:2007-07-02,空则默认当天),userID=商业用户ID(String 免费用户不需要);返回数据:一个一维字符串数组 String(),结构为:播出时间(AM or PM)@@@节目信息@@@电视台信息。

我的代码是

public class msmm {
public static void main(String[] args) throws MalformedURLException, Exception {
        //远程调用.net开发的webservice
        //Client c=new Client(new URL("http://webservice.36wu.com/mapService.asmx?wsdl"));
        //Object[] o=c.invoke("GetLinesInfoByLine",new Object[]{"北京","21","455"});
        Client c=new Client(new         URL("http://webservice.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl"));
        Object[] o=c.invoke("getTVprogramString",new Object[]{1,"2007-07-02","34"});
}
}
报错:Exception in thread "main" org.codehaus.xfire.fault.XFireFault: 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。
at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)
at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)

加载中
返回顶部
顶部