已经好多年没接触java的WebService了,这几天翻看网上各类博客信息,发现技术上革新变化不少,刚好目前手头做的项目是.NET的Webservice,对比起来,说实在,比java简单好多,纯傻瓜式的,旁人稍微指定下就会发布了,java么...貌似还是比较复杂点。好吧,那我们就再来熟悉一下java的Web Service吧。
Java的Webservice目前的规范主要有2种,即JAX-WS和JAX-RS
JAX-WS是最常见和通用的规范,是一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。详细见 http://baike.baidu.com/view/1865210.htm
JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java标注(注解)来简化Web服务的客户端和服务端的开发和部署。详细见http://baike.baidu.com/view/3443169.htm
顺便提一下JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。
上面提到的东西是一些历史知识,不要为上面的信息所击倒,因为有各类开源项目支持,其实java做Webservice已经变的简单,最常用莫过于codeHaus组织提供的一个开源框架XFire,然后是Apache组织提供的Apache CXF,还有Apache axis 也可以用于ws
Xfire http://baike.baidu.com/view/920041.htm
CXF http://baike.baidu.com/view/2742297.htm
这2种项目都集成对Spring的支持。
现在的webservice都已经使用了相关框架来进行发布,对javaer来说,习惯的就是框架。如果使用myeclipse来给工程创建WS服务的时候可以很方面的在myeclipse - project capabilities - Add Rest Web Service ….当然你也可以单独创建Web Service projcet,在创建界面会有2种框架供你选择即上面的JAX-WS和JAX-RS,完成工程创建后,查看该工程的build path 你会发现该工程带的lib全部是标准库,这是最原始ws构建方式,完全没用到Xfile和CXF这2个框架,构建的时候就不是很便捷,所以建议直接使用Xfile或者CXF这2种发布框架。
可以按照网友的建议进行学习:
1、在这几种随便挑一个,学习基本用法,用熟悉。
2、了解 wsdl soap uddi
3、了解 ws-*( basic-profile,security,Trust,addressing,reliableMessaging等等)
4、深入了解一种引擎,比如axis的话,了解saaj,axiom等
还有,关于框架选择可以参考http://www.iteye.com/topic/659637 的建议