草庐IT

java - REST 在实践中真的可以是无状态的吗?

关闭。这个问题是off-topic.它目前不接受答案。想改善这个问题吗?Updatethequestion所以它是on-topic对于堆栈溢出。10年前关闭。Improvethisquestion考虑情况。我正在编写一个统计分析应用程序。该应用程序有多个层次。为多种设备类型、桌面、浏览器、移动的。提供所谓的REST服务的中间层servlet这些前端。执行统计的极端计算的后端加工。与另一个后端数据库通信由于统计分析需要大量处理能力的原因,您永远不会梦想将此类处理委托(delegate)给前端。统计分析包括程序或一系列工作流程步骤。某些步骤可能需要如此多的处理能力,您不会想要重复它们。如果

java - 使用 PATCH 和 Jersey Client API 进行单元测试

我正在使用Jersey实现RESTAPI。对于PATCH(部分更新),我实现了自己的PATCH自定义实现,因为Jersey不支持它。现在我正试图弄清楚如何围绕该实现编写功能测试。我正在将Jersey测试框架用于具有该支持的其他方法(PUT、POST、GET、DELETE)在该框架中可用。有没有一种方法可以扩展Jersey测试框架实现来为PATCH编写我的功能测试?如果没有,是否有任何其他可用的测试框架可用于测试我的JerseyPATCH实现?如果有人能提供任何示例,那就太好了。 最佳答案 假设您的实现包含这样的自定义注释import

java - Java 如何初始化 JAXB/JAX-WS/etc 实现?

我只是想深入了解一下Java如何在JRE中包含标准引用实现(例如JRE6中的JAXB/JAX-WS),同时仍然允许第3方实现覆盖它(例如CXF).我已经到了找到javax.xml.ws.spi.FactoryFinder.find()方法的地方,它可以找到META-INF/services/java.xml.ws.spi.Provider中指定的类或com.sun.xml.internal.ws.spi.ProviderImpl(对于JAX-WS案例)并创建其实例。我找不到的是JRE如何/在何处/在哪个阶段调用FactoryFinder.find()方法。谁能教教我?[edit]我找到

java - 使用 native Java SE 6 JAX-WS 实现而不是 JBoss WS 堆栈

JBoss6.0Final附带JBossWS(默认情况下为ApacheCXF堆栈),我知道我可以将默认实现替换为来自JBossWSdownloadssite的相应JBossWSNative或Metro版本.问题是,我有一个客户端jar库(不幸的是只有二进制文件),它使用一些专有的SOAPWeb服务。当我从部署到JBoss的Web应用程序使用客户端API时,我遇到了很多间歇性SOAP错误(使用ApacheCXF和JBossNative堆栈进行了测试)。由于相同的Web服务在从独立的jar文件(没有第三方JAX-WS实现)运行时似乎工作正常,我正在考虑禁用JBossWS堆栈以支持提供的na

java - 带有 Jersey : NoClassDefFoundError 的 json

我正在尝试使用JAX-RS(Jersey)构建一个JSONRESTfulWeb服务。我也在使用Maven构建应用程序。我的第一个方法是@Path("/Person")publicclassPersonService{@GETpublicStringgetPersonService(){Personperson=newPerson();person.setLocationCode("MEL");person.setName("Johannes");returnperson.getName();}}在pom.xml->cleaninstall+RunOnServer之后它可以工作并且输出与

java - 通过 JAXB 将链接插入到 RESTEasy XML 结果中

我想通过RESTeasy/JAXB将链接插入到XML中。我尝试使用documentation对于我的代码,但这不起作用,所以我只是对文档中给定的示例进行编码:它仍然不起作用,我不知道为什么。背景:为了在我的JBossRESTEasyAPI中实现HATEOAS原则,我必须将链接插入到我的JAXBXML结果中,以便客户可以在API中导航。我现在正试图了解如何做到这一点,但我不确定documentation是否充满错误或者我无法理解示例和解释:不清楚的东西:据我了解,您必须使用@AddLinks来声明结果应该插入链接。然后我必须再次冗余(!?)使用@LinkResource和“有时”指定UR

java - JAX-RS (Reasteasy) Response.readEntity 抛出 : IllegalStateException: RESTEASY003290: Entity is not backed by an input stream

我对发送JAX-RSPOST调用的方法进行了JUnit测试。为了独立于外部资源,我mock了REST客户端并表示应该返回一个虚拟响应。效果很好,没问题。但是:当调用myResponse.readEntity(String.class)时,我总是得到以下异常:java.lang.IllegalStateException:RESTEASY003290:Entityisnotbackedbyaninputstream这是我失败的代码片段:importcom.google.gson.JsonObject;importcom.google.gson.JsonPrimitive;importja

java - Jersey 没有看到我的 MessageBodyReader

我正在尝试将Jersey与我自己的jsonMessageBodyReader/MessageBodyWriter一起使用(因为我没有在我的域类上使用@XmlRootElement...注释)。@Provider@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)publicfinalclassMyGsonMessageBodyHandlerimplementsMessageBodyWriter,MessageBodyReader{...}Jersey使用此类作为messagebodywrit

java - CXF 中的格式化 XML 输出?

我知道在使用Marshaller时如何打开格式化的可能性。但我使用的是ApacheCXF(JAX-RS)并返回类似returnResponse.ok(entity).build();的响应。我还没有找到任何如何格式化输出的选项。我该怎么做? 最佳答案 首先,获得XML格式化输出的方法是在编码器上设置正确的属性(通常是JAXB,当使用CXF时,这是可以的,因为JAXB做的工作值得信赖)。也就是说,在某处您将要执行此操作:marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,tr

java - 在 REST/Java 中,如果我的对象为 null,我应该返回什么?

我有一个简单的POJO,我用REST注释进行了注释,如下所示:@GET@Path("/domains/{domainid}")@OverridepublicDomaingetDomain(@PathParam("domainid")UUIDdomainID)throwsException{logger.info("Retrievingdomain"+domainID);Domaind=null;try{d=MyClient.getDomains().get(domainID.toString());logger.debug("Returning"+d.getName());}catch