草庐IT

java - 用于 RESTful Web 服务的 JAX-WS 与 JAX-RS

您好,我曾使用JAX-WS开发基于SOAP的Web服务。现在我想使用REST,因为正如我从here开始研究的那样,REST比SOAP具有优势。.但是从不同的文章中我知道我们也可以从JAX-WS创建RESTfulWeb服务。但是大多数人说我们应该使用JAX-RS而不是JAX-WS。我的问题是JAX-WSRESTfulwebservice和JAX-RS(jersey)之间有什么区别。与JAX-WS相比,JAX-RS有哪些优势?为什么我们应该将JAX-RS用于RESTfulWeb服务?提前致谢。 最佳答案 TL;DRJAX-WS适用于基于

java - 发生错误时使用 JAX-WS 跟踪 XML 请求/响应

如果有任何错误,我想记录原始的肥皂发布请求,我正在使用JAX-WS。任何帮助将不胜感激。是否有一种简单的方法(又名:不使用代理)仅在发生异常时才能访问使用JAX-WS引用实现(JDK1.5和更好的版本)发布的Web服务的原始请求/响应XML作为回应?我想记录原始SOAPreuest,以便以后可以通过任何Web服务客户端对其进行测试 最佳答案 使用com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true和com.sun.xml.internal.

java - Jersey /JAX-RS : How to cascade beans-validation recursively with @Valid automatically?

我正在Jersey的REST资源端点中验证我的POJO:publicclassResource{@POSTpublicResponsepost(@NotNull@ValidfinalPOJOpojo){...}}publicclassPOJO{@NotNullprotectedfinalStringname;@NotNull@ValidprotectedfinalPOJOInnerinner;...}publicclassPOJOInner{@Min(0)protectedfinalintlimit;...}这似乎工作正常。但是,@Min(0)注释只有在inner字段具有@Valid注

java - 如何在 JAX-RS 方法中获取 POST 参数?

我正在使用Jersey开发RESTful服务,它适用于GET方法。但我只能使用POST方法获取null参数。这是我项目中的示例代码。HTMLSendJava@POST@Path("/sendemail")publicResponsesendEmail(@QueryParam("email")Stringemail){System.out.println(email);returnnewResponse();}我从帖子中收到的电子邮件始终为空。有人有这个想法吗?我把QueryParam改成了FormParam,得到的参数还是null。 最佳答案

java - 如何从 javax.ws.rs.core.Response 响应中检索 JSON 响应?

我正在向API发出请求并获得200的响应状态代码。api的响应包括json响应。importjavax.ws.rs.core.Response;Responseresponse=webclient.post(SomeReqString);如何从Web客户端响应中检索json响应作为字符串? 最佳答案 您可以使用以下代码StringresponseAsString=response.readEntity(String.class); 关于java-如何从javax.ws.rs.core.R

java - AbstractMethodError 在 JAX-RS 上使用 UriBuilder

这个问题在这里已经有了答案:java.lang.AbstractMethodError:javax.ws.rs.core.UriBuilder.uri(8个回答)关闭3年前。我正在尝试使用异步响应构建RESTWeb服务。我在网上查看了这个错误,但是没有一个解决方案对我有用。我不知道该怎么做。这是REST服务的代码,它有AsyncResponse和@Suspended,它们取自pom.xml中指定的jar文件,我将提供以下。问题是,在部署war时,我得到了一个异常(exception):java.lang.AbstractMethodError:javax.ws.rs.core.UriB

java - 使用异常映射器的 JAX-RS

我读到我可以创建javax.ws.rs.ext.ExceptionMapper的实现,它将抛出的应用程序异常映射到Response对象。我创建了一个简单的示例,如果在持久化对象时电话长度大于20个字符,则会引发异常。我希望将异常映射到HTTP400(错误请求)响应;但是,我收到HTTP500(内部服务器错误),但有以下异常:java.lang.ClassCastException:com.example.exception.InvalidDataExceptioncannotbecasttojava.lang.Error我错过了什么?非常感谢任何建议。异常映射器:@Providerpu

java - 如何部署 JAX-RS 应用程序?

JAX-RS1.1规范在第6页上说:IfnoApplicationsubclassispresenttheaddedservletMUSTbenamed:javax.ws.rs.core.Application添加的servlet是什么?会不会是一个任意的servlet?IfanApplicationsubclassispresentandthereisalreadyaservletdefinedthathasaservletinitializationparameternamed:javax.ws.rs.Application再次,这里的“servlet”是什么?IfanApplic

java - JAX-WS = 安装 Apache CXF 时 "steals"默认 JDK JAX-WS 实现,如何解决?

我有一个奇怪的问题。使用wsimport我从WSDL生成了alsJAX-WS代码(在一个专用的eclipsejava项目中)。这在JDK6中运行良好,没有任何外部依赖项(在Eclipse中运行)我有第二个项目,我曾经使用过ApacheCXF。如果我将1.)中描述的代码复制到这个项目中,突然间不是JDK执行JAX-WS的东西(我生成的文件),而是ApacheCXF。如何防止ApacheCXF“运行”JAX-WS的东西。(问题是,CXF无法运行代码......)。我也完全不明白ApacheCXF是如何发现这些类的。我没有注册吗?非常感谢!马库斯 最佳答案

java - JAX-RS jersey ExceptionMappers 用户定义的异常

我是新手,试图阅读一些文档但它不起作用,请多多包涵。我使用ExceptionMappers创建了一个UserNotFoundMapper,如下所示:publicclassUserNotFoundMapperimplementsExceptionMapper{@OverridepublicResponsetoResponse(UserNotFoundExceptionex){returnResponse.status(404).entity(ex.getMessage()).type("text/plain").build();}}这在我的服务中:@GET@Path("/user")pu