您的位置:首页 > 编程语言 > Java开发

jax-ws详解:与javaee webservice(Axis2)的区别

2016-06-22 16:14 555 查看
一、撰写此片文章的目的

       1、我一直在做javaee项目,对webservice也一直停留在理论层次,实践方面主要是根据牛人的blog部署过tomcat+Axis2。在做javaee项目时,用的eclipse,在每个dynamic web project 目录里一直有一个 JAX-WS,不知道做什么用的,所以想研究下,就产生了今天的研究和尝试,所以说,学习源于兴趣和好奇。

        2、我会把参考的一些资源罗列出来,都是我认为很好的,供大家参详。

        3、我会作为新手的一些疑惑写出来,以供自己以后查看,也希望给大家有点提示。

二、参考资源(经典的)

        1、 JAVA项目中发布WebService服务——简单实例

看了两小时理论,wdsl、soap、webservice、UDDI等,看的我眼花缭乱,最后也没明白怎么回事。但是用20分钟根据教程跑一遍例子,估计会有一个直观印象。

        2、eclipse+webservice开发实例

              这个教程主要是tomcat+Axis2的构建和开发,很实用,适合新手上路。

3、 


JAX-WS:背后的技术JAXB及传递Map

三、遇到的问题。

      1、jax-ws是通过main函数发布服务,那么这个main函数怎么会提供web服务呢?

       答:这个问题困扰我很久,后来发现main函数运行后一直没有结束,说明main方法里有阻塞式方法或者监听之类的服务。

经查看main方法代码,Endpoint.publish("http://localhost:8080/hello2Service", hello);这行代码最后可能让main方法阻塞。

       通过查看源码,endpoint实际上启动了jdk内置的httpserver服务(jdk6增加),这也就能解释jax-ws不需要tomcat等web服务器也能提供web服务的事情了。JavaSE6提供的轻量级的HttpServer位于rt.jar下的com.sun.net.httpserver,具体可见这里同时这里还有一个小实例。

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息