我应该用什么技术来开发小型Java Web服务?

时间:2009-11-26 12:38:39

标签: java web-services

基本上我需要webservice,客户端可以从我们的webservice请求id为一个布尔值。哪种技术最适合这种小型API?当然,接口可能会有更多功能,但现在我们只需要一个功能。它还需要具有身份验证,以便只有经过授权的客户端才能访问服务。每个客户都有不同的身份证明。

为此目的,什么是好技术?

8 个答案:

答案 0 :(得分:2)

我正在使用resteasy来构建我的web服务并且它非常易于使用...只需要在我的方法上使用注释来提供web服务。

Here是对不同JAX-RS框架的比较。看看吧

答案 1 :(得分:1)

首先:身份验证和授权。不要自己动手,选择app server或servlet容器并配置它来完成这项工作。

对于网络服务....

最简单的做法就是实现一个响应POST的servlet(如果请求修改了内部状态,则不是GET)并在正文中返回结果。这样你就不需要任何框架工作,也不需要学习(如果你已经知道servlet)。缺点是它不会随着您添加更多功能而缩放,而且您没有使用足够的流行语。

如果您需要基于SOAP的Web服务,请查看JAX-WS。现在它已经支持java 6了,这很容易。

在最简单的层面上,JAX-WS允许您在类上添加一些注释,如@WebService,它会自动生成一个wsdl并通过Web服务公开您的类的实例。

有很多关于如何做的文件:

答案 2 :(得分:1)

JAX-WS +任何servlet容器(通常选择Tomcat)

@WebService(targetNamespace = "http://affinity.foo.com", name="RewardsStatus")
@SOAPBinding(style=SOAPBinding.Style.RPC, use=SOAPBinding.Use.LITERAL)
public interface RewardsStatusIF {
    @WebMethod(operationName="GetLastNotificationDate", action="urn:GetLastNotificationDate")
    @WebResult(name="return")
    public Date getLastNotificationDate() throws AffinityException;
...

实际上,您甚至不需要servlet容器。 JAX-WS有一种在独立Java应用程序下运行服务的方法。它有一些限制(我没有做出有状态的服务工作),但它确实如此 创建非常简单。

答案 3 :(得分:0)

你可以使用一些像jersey这样的宁静框架。

答案 4 :(得分:0)

鉴于您将问题标记为“Java”,我建议Jetty。它是一个非常好的小型servlet引擎。它支持会话,因此添加身份验证不应该是一个问题。

答案 5 :(得分:0)

如果您使用的是Java 6,则内置HTTP Server,它支持Http身份验证。这就是你所需要的。退房,

com.sun.net.httpserver

答案 6 :(得分:0)

使用JAX-WS的基于SOAP的Web服务的替代方案是JAX-RS(对于RESTful Web服务)。

答案 7 :(得分:0)

我们的项目中有很多场景,我们希望在应用程序运行时通过简单的HTTP URL提供少量数据,根据我的经验,Restlet(http://www.restlet.org/)似乎是最简单的事情之一可用于在Java应用程序中设置简单的“Web服务”类接口(RESTful接口)。