[英]Distributed Application Environment and Web Services - What/How to learn?
[英]What to learn to do Java web services?
我最后一次使用Java Servlets和JSP进行Java Web开发。 我从未真正使用过EJB。 我记得我在开发Web服务\\动态网站方面的经验,这些网站的速度很慢(在开发时间方面)和痛苦(在易于部署方面)。
如今大多数企业使用什么来开发基于Java的网站? 您是否使用AXIS或其他框架来进行Web服务? 您是否使用JSP或其他技术作为前端?
当前的标准是使用JAX-WS(用于SOAP Web服务)和JAX-RS(用于RESTful Web服务)。
这些是具有多个实现的标准。 JAX-WS有Metro,CXF等.JAX-RS有Jersey,RESTEasy等。
我会按顺序学习这些
从2004年开始,工具支持以及易于开发也已经走过了漫长的道路。随着对轻量级框架的关注越来越多(部分归功于Spring),在Java中实现Web服务变得更加容易。
在决定实施Web服务之前,您需要回答一个简单的问题。 肥皂或REST.I建议你形成自己的观点,但这是我能想到的,在我的头顶。
SOAP的优点:
肥皂的缺点。 (问罗伊菲尔丁......)
在臃肿的Web服务协议罗伊Fieldings咆哮后, web服务 ,他长出了常识的说法使用互联网的SOA的背部骨,有对REST一个平缓的动作。 谷歌和亚马逊等更敏捷的公司采用了REST,并且正在支持基于REST的Web服务。
REST的优点:
REST的缺点:
我喜欢泽西岛的REST。 它具有惊人的框架,出色的支持,出色的文档,良好的测试支持库。
无论哪种方式,我都会下载Netbeans IDE并使用它来开发基于REST或SOAP的Web服务的骨架代码。 Netbeans让它很容易上手。 一旦熟悉了代码,就可以切换到自己喜欢的IDE。 (顺便说一句,除了原型设计之外我不会使用Netbeans,它会尝试做很多事情并且大部分都做得很糟糕......无论如何我的意见)
我的偏好是Apache Avro(在@ rodrigoap的回答中提到)。 我现在工作的地方,我们有一个面向服务的架构,并使用Avro进行内部服务。 我们之所以选择它,是因为它快速,稳定,可以运行http(很容易通过Tomcat服务),可以自动生成客户端类,并可以使用多种语言。 客户端类的生成对我们来说是一个很大的特性,因为它意味着我们只处理Java对象并让Avro处理序列化并通过网络发送内容。 不必处理许多不同的网址也很好。 Avro Web服务由单个servlet托管,Avro负责如何将每个请求映射到实现类中的相应方法。
为了再次参考@ rodrigoap的答案,他在Avro的列表中放置了其他几个选项,对于外部访问的Web服务,我同意这些是更好的选择,因为您的外部服务用户可能对使用不感兴趣Avro只是因为你可能已经选择了它。
如果您对一个示例感兴趣,这里有一个示例Avro Web服务项目,可以查看它是如何工作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.