【发布时间】:2012-02-28 14:30:40
【问题描述】:
.net 世界中的 Java 等价于脚本服务(如 Web 服务,但使用 JSON 而不是 XML)?
我正在寻找一种使用 java 创建和调用 Web 服务的方法。我更喜欢找到一种方法,让我可以定义一个充当 Web 服务的方法。对于特定请求,我不喜欢“专用 jsp 或 servlet”的解决方案。
有什么办法吗?
【问题讨论】:
标签: java asp.net .net web-services
.net 世界中的 Java 等价于脚本服务(如 Web 服务,但使用 JSON 而不是 XML)?
我正在寻找一种使用 java 创建和调用 Web 服务的方法。我更喜欢找到一种方法,让我可以定义一个充当 Web 服务的方法。对于特定请求,我不喜欢“专用 jsp 或 servlet”的解决方案。
有什么办法吗?
【问题讨论】:
标签: java asp.net .net web-services
有很多框架可以帮助您做到这一点。我个人更喜欢春天。 但是您可以只搜索“基于 Java 的 RESTful Web 服务框架”。以下是来自 Wikipedia 的此类框架列表:http://en.wikipedia.org/wiki/List_of_web_service_frameworks
享受吧。
【讨论】:
您可以使用 Jersey 或 RESTeasy 之类的库来实现 Web 服务。对于消费者,您可以使用相同库的内置类,或者如果您愿意,可以使用Apache HttpClient
我个人更喜欢使用 Jersey + HttpClient 组合:)
【讨论】:
我更喜欢 RESTful 服务,它适合您的“我更喜欢找到一种方法,允许我定义一个充当 Web 服务的方法。”只需使用 REST 注释即可设置方法即服务。
代码片段简单 REST
@Path("/rest") 公共类 MyFirstService {
//Method without Path parameters
@GET
@Path("/name")
@Produces("application/json")
public String getMyName()
{
return "My Name:";
}
//Method with Path parameters
@GET
@Path("/name/{id}")
@Produces("application/json")
public String getMyName(@Pathparam("id")String Id)
{
if(Id.equals("1")
return "My Name:";
else
return "None";
}
}
RESTful 服务提供四大服务: 得到 放 邮政 删除
【讨论】:
我会推荐 JEE6,特别是如果您将重点放在基于 REST 的服务上。 Glassfish 3 和 JBoss 7 现在与它们的实现并驾齐驱,两者都是不错的选择(尽管 JBoss 是我个人的偏好)。使用 JAX-RS 和 JAS-WS 规范,您只需对类进行注释,它们就可以成为 Web 服务:
使您的 bean 成为基于 SOAP 的 Web 服务:
@WebService
public class AccountImpl {
// You can explicitly mark the methods you want to make available in your WSDL
@WebMethod
public BigDecimal getBalance() {}
}
使您的 bean 成为基于 REST 的 Web 服务:
@Path("/rs/account")
public class AccountImpl {
@GET
@Path("/balance")
@Produces("application/json")
public BigDecimal getBalance() {}
}
代码 sn-p 只是一个示例。您可以在线找到更多学习 JAX-RS 和 JAX-WS 的资源。这里有几个链接:
注意:我包含有关 JAX-WS 的信息仅供参考。您表示要构建 JSON 服务,这意味着 REST
【讨论】: