调用三方webservice


模拟三方webservice地址

第一步:定义接口

@javax.jws.WebService(name = "webService",// 定义Port名称
        targetNamespace = "http://v/webs"// 定义命名空间,默认为倒置的包名
        ,serviceName ="myWebService"//修改WebService服务名称 
)
public interface WebServiceInter { // 提供一个对外公开的服务
    @WebMethod(operationName ="getNameById")
        // 修改方法名
    String getName(@WebParam(name="userId")String userId);

    @WebMethod(operationName ="getUserInfo")
        // 修改方法名
    String userInfo(@WebParam(name = "userInfo") String userInfo);
}

第二步:定义实现类

@javax.jws.WebService(endpointInterface = "com.speed.test.WebServiceInter"
        ,name = "webServiceV"// 定义Port名称
        ,targetNamespace = "http://v/webs" // 定义命名空间,默认为倒置的包名
        ,serviceName ="myWebServiceV"// 修改WebService服务名称
//服务实现类和接口的注解要一样全
)
public class WebServiceInterimpl implements WebServiceInter {

    @WebMethod(operationName = "getNameById")// 修改方法名
    @Override
    public String getName(String userId) {
        if ("admin".equals(userId)) {
            return "success";
        }
        return "error";

    }

    @WebMethod(operationName = "getUserInfo")// 修改方法名
    @Override
    public String userInfo( @WebParam(name = "userInfo")
                                        String userInfo) {
        if ("www".equals(userInfo)) {
            return "my name is "+userInfo;
        }
        return "not this name";
    }
}

1.serviceName是调用的工厂

2.targetNamespace 是cmd创建的包的名字

3.name 是这个webservice的名字

第三步:启动类:(每次更改需要重新启动)

   public static void main(String[] args) {
        //指定服务url
        String url = "http://localhost:8889/web?wsdl";
        //指定服务实现类
        WebServiceInter server = new WebServiceInterimpl();
        //采用命令行发布者Endpoint发布服务
        Endpoint.publish(url, server);


    }

第四步:找到所需要放代码文件的目录

执行:打开命令行窗口,切换到项目的src目录,执行"wsimport -keep  http://localhost:8889/web?wsdl"生成客户端代码,如下图所示

所指定的目录下自动生成代码

​ 

调用webservice

第五步:调用webservice方法

 public static void main(String[] args) {
        //调用serviceName生成的属性名称方法
        MyWebServiceV factory1 = new MyWebServiceV();
  
        WebService webServicePort = factory1.getWebServiceVPort();
      
        String userInfo = webServicePort.getUserInfo("www");
        System.out.println(userInfo);
}

1.需先调用之前定义的serviceNama里面的属性名称方法获取工厂
2.根据工厂获取方法Port方法
3.调用自己定义的方法

参考:java调用第三方的webservice应用实例 - Mr_伍先生 - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值