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