草庐IT

java - 无法在 Weblogic 12c (12.2.1) 中部署 CXF3.x JAX-RS 服务

将使用CXF3.x构建的JAX-RS服务从weblogic12.1.3升级到12.2.1后,我面临以下奇怪的问题请注意,我使用的是CXF,而不是Jersey,但似乎Weblogic正在尝试使用它(12.1.3不会发生这种情况)。我按照以下建议在配置文件中禁用了它:https://jerometambo.github.io/blog/2016/12/13/How-to-use-CXF-3x-implementation-of-JAX-RS-20-REST-with-Weblogic-12c.htmlWithdefaultconfiguration,Weblogicwantstouseit

java - REST with JAX-RS - 处理长时间运行的操作

我有一个使用JAX-RS实现的REST服务。有些操作需要很长时间才能完成,可能需要15-30分钟。对于这些情况,我倾向于分派(dispatch)一个后台线程来处理长时间运行的操作,然后立即响应HTTP状态202ACCEPTED。响应将包含一个带有url的位置header,客户端可以使用该url来轮询进度。此方法需要创建线程来处理长时间运行的操作,以便可以立即返回202ACCEPTED。我还知道,在JavaEE容器中创建自己的线程通常是不好的做法!我的问题如下:人们是否同意这是一种正确的方法?假设它是正确的,人们能否推荐一个“良好实践”解决方案,使我能够在后台调度长时间运行的操作并立即返

java - 异步 JAX-RS 的目的是什么

我正在阅读“RESTfulJavawithJAX-RS2.0”一书。我对异步JAX-RS完全感到困惑,所以我把所有问题都集中在一个问题上。书上是这样写异步服务器的:@Path("/customers")publicclassCustomerResource{@GET@Path("{id}")@Produces(MediaType.APPLICATION_XML)publicvoidgetCustomer(@SuspendedfinalAsyncResponseasyncResponse,@ContextfinalRequestrequest,@PathParam(value="id")

java - 如何在 JAX-RS 异常上使用自定义消息设置 40X 错误?

我正在JAX-RS上开发一个已经运行的Web服务。现在,我正在寻找捕获一些异常的方法,以便将带有自定义消息的40X错误发送给用户。我有一个网络服务和一个ExceptionMapper。这是我的网络服务:@Path(value="/test/")publicinterfaceServiceTest{@Path(value="{rrf}")@GET@Produces(MediaType.TEXT_XML)publicObjectDTOgetDealer(@PathParam("rrf")Stringrrf){ObjectDTOobjectDTO=newObjectDTO();if(veri

java - 我如何像 JAX-RS(CXF 和 Jersey)一样使用 JAXB 编码 java.util.List

这个问题在这里已经有了答案:IsitpossibletoprogrammaticallyconfigureJAXB?(1个回答)关闭7年前。最新的JAX-RS似乎可以处理将java.util.List作为XMLRootElement返回的方法,但普通的JAXB不能。我想模仿CXF和Jersey正在做的事情。换句话说,我想编码一个列表,就像CXF和Jersey一样。通常,如果您尝试使用JAXB编码列表,您会得到RootElement异常。如何在不必制作包装对象的情况下解决这个问题?编辑:感谢您提供的许多答案,但我对@XmlElementWrapper非常熟悉,但这甚至无法模拟JAX-RS

java - 如何使用 JAX - RS 在 Java 中使用 Web 服务从数据库插入数据

我是网络服务的新手。请给出如何使用jerseyJAX-RSinjava从数据库中插入和检索数据的建议? 最佳答案 下面是一个JAX-RS服务作为sessionbean实现的示例,使用JPA进行持久化,使用JAXB进行消息传递可能看起来像.客户服务packageorg.example;importjava.util.List;importjavax.ejb.*;importjavax.persistence.*;importjavax.ws.rs.*;importjavax.ws.rs.core.MediaType;@Stateles

java - JAX-RS 注释 : Better to put on Interfaces or Classes?

我处于REST实现的早期阶段,最近了解到我们可以将JAX-RS注释放在我们的Java服务接口(interface)而不是类实现上。在我看来,这可能会产生一个干净的类文件,但也可能导致开发人员不得不不断地在文件之间混淆。每种方法的优缺点是什么? 最佳答案 你应该把它放在一个界面中。相反,我的实践要求我将它放入一个接口(interface)中,因为我的客户端和服务器端共享相同的jax-rs定义。我倾向于将jax-rs用于REST-RPC。REST的原因是允许Web服务URLAPI可由任何编程框架提供服务和“客户端”。jax-rs的使用限

java - JAX-RS 中等效的 Servlet init() 方法

我正在开发一个在Glassfish上运行的应用程序。我应该通过使用jax-rs和jersey将servlet转换为适当的restful内容。我一直在尝试为init()方法寻找解决方法,但直到现在我都失败了。这是原始部分,使用servlet:importjavax.servlet.*publicvoidinit(ServletConfigconfig)throwsServletException{super.init(config);if(!isRunning()==true)){/*Dosomestuffhere*/}logger.info("Deamonhasstarted");}还

java - 如何在 POST 期间获取不同资源的 JAX-RS @Path?

我有两个用于涉及用户资源的简单Web服务(Jersey和GlassFish)的REST类-一个对所有用户进行操作(例如,@POSTing的工厂),另一个对单个用户进行操作(例如,@GET、@放,@DELETE)。他们在:@Stateless@Path("users")publicclassAllUsersResource{...}@Stateless@Path("user")publicclassOneUserResource{...}分别。发布到AllUsersResource时,我想返回新用户的位置(通过Response.created(uri).build()),例如,http:

java - 更改 jax-rs REST 服务中的内容类型

请原谅,我可能不熟悉正确提出这个问题所需的所有行话。我正在使用jax-rs的org.apache.cxf.jaxrs.ext实现在Java中开发一个相当简单的RESTWeb服务。方法头是这样的:@GET@Path("json/{fullAlias}")@Produces({"application/json"})publicStringjson(@PathParam("fullAlias")StringfullAlias,@ContextMessageContextreq)其中MessageContext是org.apache.cxf.jaxrs.ext.MessageContext。