使用jdk开发webservice接口以及调用

一、开发webservice接口的方式

1、使用jdk开发

2、使用第三方工具,如cxf、shiro等

二、使用jdk开发webservice接口以及调用

首先定义一个天气预报的接口,Weather

@WebService
public interface Weather {
    String queryWeather();
}

定义一个实现类,实现该接口

@WebService
public class WeatherImpl implements Weather{
    public String queryWeather() {
        return "今日天气为晴,偏北风二到三级";
    }
}

写一个普通的类,使其继承自spring的上下文监听器,并在初始化方法中发布接口,这样在容器启动时自动会发布

复制代码
public class MyListener extends ContextLoaderListener{

    public void contextInitialized(ServletContextEvent event) {
        String address="http://localhost:8080/weather";
        Endpoint.publish(address, new WeatherImpl());
        super.contextInitialized(event);
    }
}
复制代码

在web容器中设置该监听器

 <listener>
      <listener-class>springframe.listener.MyListener</listener-class>
  </listener>

启动容器(如果启动过程中报错:出现类似

Wrapper class webservice.jaxws.SayHi is not found. Have you run APT to generate them?

则说明使用的jdk版本过低,请使用jdk1.6或更高),访问http://localhost:8080/weather,结果如下:

表示发布成功。

 

接下来是如何调用一个发布的webservice接口

新建一个项目test_p

选中项目,鼠标右键,选择NEW,选择other,找到web service client,next,在弹出的框中选择WSDL URL,病输入wsdl的url,这里是http://localhost:8080/weather?wsdl,next,finish

 

然后为我们生成了一堆类

不过我们只需用到最后两个,Weather_service和Weather

下面写一个main方法

public static void main(String[] args) {
        Weather_Service factory=new Weather_Service();
        Weather wea=factory.getWeatherImplPort();
        System.out.println(wea.queryWeather());
    }

执行,会输出如下的结果:

代表调用成功。

注意:如果webservice用到的端口最好与tomcat的访问端口不一样,否则,会出现无法访问项目。

三、使用cxf开发webservice接口

该方法尚在研究中,敬请期待。。。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值