JDK6.0中webservice的使用浅析

首先我们来认识一下JDK 6.0中web service,Java 6.0 之后,其中JDK自带有个轻量级的web service 服务器。如果你比较细心一定发现在你安装Java的路径下,有Java webservice 的示例代码。

创新互联建站专注于企业成都营销网站建设、网站重做改版、盐津网站定制设计、自适应品牌网站建设、H5页面制作商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为盐津等各大城市提供网站开发制作服务。

以前也用Java开发过web service ,但是当初用了一个apache 下axis开源项目。不过Java自带有何必舍近求远呢。今天我就把自己创建的最简单Java webservice 范例过程记录下来,与大家分享。

我用的是Netbeans 6,首先建立一个Java 应用程序工程,名为WebServices。建立一个服务端程序。

package WebServices;

 
 
 
  1. import javax.jws. * ;
  2. import javax.xml.ws.Endpoint;
  3. /**
  4. * @author hecm
  5. */
  6. @WebService(targetNamespace = " http://www.blogjava.net/JAVA-HE " , 
  7. serviceName = " HelloService " )
  8. public class WSProvider
  9. {
  10. // @WebResult(name = "Greetings") // 自定义该方法返回值在WSDL中相关的描述
  11. @WebMethod(action = " sayHi " , operationName = " sayHi " )
  12. public String sayHi(@WebParam(name = " MyName " ) String name)
  13. {
  14. return " Hi, " + name; // @WebParam是自定义参数name在WSDL中相关的描述
  15. }
  16. @Oneway // 表明该服务方法是单向的,既没有返回值,也不应该声明检查异常
  17. @WebMethod(action = " printSystemTime " , operationName = " printSystemTime " ) 
  18. // 自定义该方法在WSDL中相关的描述
  19. public void printTime()
  20. {
  21. System.out.println(System.currentTimeMillis());
  22. }
  23. public static void main(String[] args)
  24. {
  25. Thread wsPublisher = new Thread( new WSPublisher());
  26. wsPublisher.start();
  27. }
  28. private static class WSPublisher implements Runnable
  29. {
  30. public void run()
  31. {
  32. // 发布WSProvider到http: // localhost:8888/hechangmin/WSProvider这个地址,之前必须调用wsgen命令
  33. // 生成服务类WSProvider的支持类,命令如下:
  34. // wsgen -cp . WebServices.WSProvider
  35. Endpoint.publish("http://localhost:8888/JAVA-HE/WSProvider", new WSProvider());
  36. }
  37. }
  38. }

在JDK 6.0中web service建立对应的包,就不用说了。

然后编译文件。

进入命令提示符下,进入classes目录,运行:wsgen -cp . WebServices.WSProvider

可以看到将刚才的class 生成了几个Java文件和class文件。

现在要做的是发布ws到http://localhost:8888/chinajash/WSProvider

而实际上的动作就是:Endpoint.publish("http://localhost:8888/chinajash/WSProvider",new WSProvider());

当然直接运行WSProvider 。

然后输入http://localhost:8888/JAVA-HE/WSProvider?wsdl

就已经查看到生成的wsdl (webservice 描述语言)。

也就是服务端就OK了。

保持运行。编写一个测试客户端:

首先选择项目,右键新建 web服务客户端。其中ws url填入刚才生成的wsdl地址:

http://localhost:8888/JAVA-HE/WSProvider?wsdl

(实际上:和wsimport http://localhost:8888/JAVA-HE/WSProvider?wsdl 一样的效果)

产生一个效果:在classes下 按照 之前指定的名字空间产生的包下(目录结构)生成了7个帮助class。

然后我们建立一个包 client 建立测试文件:

 
 
 
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package client;
  6. import net.blogjava.java_he. * ;
  7. /**
  8. *
  9. * @author hecm
  10. */
  11. public class Test {
  12. public static void main(String args[])
  13. {
  14. HelloService hs = new HelloService();
  15. WSProvider ws = hs.getWSProviderPort();
  16. System.out.println(ws.sayHi( " hechangmin " ));
  17. ws.printSystemTime();
  18. }
  19. }

运行这个测试类:

Hi,hechangmin

输出了。

JDK 6.0中web service的使用顺利完成!

那么以上JDK 6.0中web service的使用是一点个人经验,你发布的地址***写成可配置。还有就是wsdl 中会严格按照你指定的url来访问,比如你指定的127.0.0.1 那么你用本机IP的时候也许并不能顺利访问。

分享文章:JDK6.0中webservice的使用浅析
链接分享:http://www.shufengxianlan.com/qtweb/news49/491949.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联