2009-11-26 72 views
3

基本上我需要web服务,客户端可以用id从web服务请求一个布尔值。哪种技术最适合这种小型API?当然,可能会有更多的函数进行接口,但现在我们只需要一个函数。它还需要进行身份验证,以便只有受支持的客户才能访问服务。每个客户都有不同的授权凭证。我应该使用什么技术来开发小型Java Web服务?

这对于这个目的有什么好技术?

回答

2

我使用resteasy来构建我的web服务,它使用起来非常简单...只需要在我的方法上使用注释来提供web服务。

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

0

你可以使用一些宁静的框架,如jersey

0

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

1

首先:认证和授权。不要自己动手,选择一个应用程序服务器或servlet容器并配置它来完成这项工作。

对于Web服务....

做它只是实现一个响应一个POST(如果没有要求修改内部状态的GET),并返回结果体内一个servlet最简单的事情。这样你就不需要任何框架工程,也不需要学习(如果你已经知道servlet)。缺点是它不会随着您添加更多功能而扩展,而且您没有使用足够的时髦词语。

如果你想要一个基于SOAP的Web服务,那么看看JAX-WS。现在它已经支持到Java 6中,这非常简单。

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

有大量documenation出围绕如何做到这一点:

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应用程序下运行服务的方法。它有一些限制(我没有做出有状态的服务工作),但它很容易创建。

+1

要在Java 5中使用@WebService注释,还需要JSR 181实现。如果您使用Java 6,则包含它,JAXB也是如此。我想我想说的是:您需要Java 5加JAXB和JSR 181或Java 6. – 2009-11-26 14:13:08

+0

另外我想知道:要真正做到这一点,我们不需要JAX-WS吗? – 2009-11-26 14:14:04

+0

嗯,是的,当然,它应该是JAX-WS。输入匆忙。 – 2009-11-26 19:36:05

0

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

com.sun.net。httpserver

0

对于JAX-WS,基于SOAP的Web服务的另一种替代方法是JAX-RS(适用于REST风格的Web服务)。

0

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

相关问题