iteye_8144
2012-12-12 14:43 阅读 275
已采纳

调用webservice的问题

[code="java"] public static void main(String[] args) {
try{
//标识WebService的具体路径

String endpoint = "http://project.test.gov.cn/api/test.asmx?wsdl";

//创建Service实例

Service service = new Service();

//通过Service实例创建Call实例

Call call = (Call)service.createCall();

//将WebService的服务路径加入到Call实例中,并为Call设置服务的位置

URL url = new URL(endpoint);

call.setTargetEndpointAddress(url);

//调用WebService方法

//call.setOperationName("AddInfo");

call.setOperationName(new QName("http://www.test.net/api/","AddInfo"));

        //由于需要认证,故需要设置调用的用户名和密码。   
        call.getMessageContext().setUsername("aaa");// 设置用户名。   
        call.getMessageContext().setPassword("bbb");// 设置密码   

        //调用WebService传入参数   
        String res = (String)call.invoke(new Object[] {getXml()});   
        System.out.println(res);   
    }catch(Exception e){
        e.printStackTrace();
    }
}[/code]
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    taitoushan taitoushan 2012-12-12 14:47
  • alan3258 燕山石头 2012-12-13 17:15

    [code="java"]
    call.setOperationName(new QName("http://www.test.net/api/","AddInfo"));

    [/code]
    这里可能有错误(把/api去掉试试)参照下面说的,就是楼上贴的网址
    [code="java"]
    call.setSOAPActionURI("http://WebXml.com.cn/"+"getWeather");
    [/code]

    这个方法网上好多地方都只是传入一个URI,就是那个wsdl的命名空间,这是错的,必须接上我们要调用的接口方法

    点赞 评论 复制链接分享
  • sunnyboysac sunnyboysac 2012-12-14 13:51

    [code="java"]
    public static void main(String[] args) {
    try{
    //标识WebService的具体路径

    String endpoint = "http://project.test.gov.cn/api/test.asmx?wsdl";

    //创建Service实例

    Service service = new Service();

    //通过Service实例创建Call实例

    Call call = (Call)service.createCall();

    //将WebService的服务路径加入到Call实例中,并为Call设置服务的位置

    URL url = new URL(endpoint);

    call.setTargetEndpointAddress(url);

    //调用WebService方法

    //QName方法有两个参数,1:命名空间 2:方法名
    call.setOperationName(new QName("http://www.test.net/","AddInfo"));

            //由于需要认证,故需要设置调用的用户名和密码。   
                call.getMessageContext().setUsername("aaa");// 设置用户名。   
                call.getMessageContext().setPassword("bbb");// 设置密码   
    
            //调用WebService传入参数   
            String res = (String)call.invoke(new Object[] {getXml()});   
            System.out.println(res);   
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    

    [/code]

    点赞 评论 复制链接分享

相关推荐