基本上我需要webservice,客户端可以从我们的webservice请求id为一个布尔值。哪种技术最适合这种小型API?当然,接口可能会有更多功能,但现在我们只需要一个功能。它还需要具有身份验证,以便只有经过授权的客户端才能访问服务。每个客户都有不同的身份证明。
为此目的,什么是好技术?
答案 0 :(得分:2)
答案 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)
答案 7 :(得分:0)
我们的项目中有很多场景,我们希望在应用程序运行时通过简单的HTTP URL提供少量数据,根据我的经验,Restlet(http://www.restlet.org/)似乎是最简单的事情之一可用于在Java应用程序中设置简单的“Web服务”类接口(RESTful接口)。