介绍JDK6自带的Webservice特性例子

jopen 6年前
    webservice接口开发有用到Axis2、XFire、CXF等框架发布通过获取相关的wsdl文件即可实现远程通讯数据交互。
 Axis2配合相关的IDE生成服务并发布到服务器上面相当简单和根据选择其中之一的wsdl引擎生成客户端调用java类,感觉类库jar包比较庞大应用起来也比较复杂。
     XFire是比较强大的webservice框架,容易与web容器整合,以及spring提供整合支持。
    CXF是apache收购XFire后改造产物,功能也相当强大。

    而JDK6自带了webservice特性,可以不使用web容器,深感部署之简单,真正的轻量级,可以使你集中尽力解决服务端的相关功能设计与实现。


 下面介绍JDK6自带的Webservice特性例子:

 IDE:eclipse javaee版
新建一个java工程后,建如下类即可简单实现webservice:

 package com.ws;  import javax.jws.WebService;  import javax.xml.ws.Endpoint;    @WebService  public class Helloword {      public String sayHello() {         return "helloworld";        }         public static void main(String[] args) {         //发布一个WebService         Endpoint.publish("http://localhost:9090/HelloWorld", new Helloword());       }           } 
启动main方法即可发布一个webservice服务,通过浏览器输入http://localhost:9090/Helloword?wsdl即可访问。
注:HelloWorld是一个普通类,只是在类的前面第4行加了注解 @WebService ,发布是在第11行,http://localhost:9090/HelloWorld是发布服务地址,其中new HelloWorld()是服务类。不过类的包名必须定义,否则会报错。
   在实际项目开发中可以服务地址从硬编码中抽离处理,写到配置文件或者数据库中方便维护管理,修改地址从前服务即可。