当前位置: 首页 > 知识库问答 >
问题:

在JAX-RS中获取普通内容

毛勇
2023-03-14

我有一个项目,基本上是一个Apache Wicket网络应用程序,但它也有3个REST服务。我想把这两种不同的技术放在一个应用程序中,因为它们共享很多类。另外,我希望它们共享同一个JPA实例,因为它们在同一个数据库上操作。

@PATH("service")
public class ServiceClassA
@PATH("s1")
public String someMethod...

@PATH("service")
public class ServiceClassB
...

Wicket类不受此影响,因为Wicket过滤器可能在JAX-RS有机会获取URL之前运行。但是像css文件这样的普通资源掌握在JAX-RS手中,导致

No root resource matching request path browser/xxx.css has been found, Relative Path: /browser/xxx.css.

除了上面显示的服务方法的endpoint之外,JAX-RSendpoint还包含一个通用endpoint:

REST Application: http://localhost:8080/MyAppName/ -> org.apache.openejb.server.rest.InternalApplication

一旦删除所有@Path注释,我的css就可以正常服务了。因此,我怀疑刚才显示的endpoint是自动生成的,并导致REST框架处理应用程序的任何URI,即使没有为其定义路径。所以我基本上需要告诉JAX-RS忽略

    null

顺便说一句,我的web.xml很简单。它包含映射到/*的wicket过滤器,没有其他内容,特别是没有用于JAX-RS的过滤或servlet。服务器是TomEE-plus 1.6.0.2,JAX-RS库是Tomee附带的。

共有1个答案

杨赞
2023-03-14

JAX-RS是一个servlet,所以如果不将它绑定到应用程序的子上下文,它就会与资源发生冲突。您可以使用@application(“subcontext”)提供应用程序

注意:TomEE支持排除一些静态资源,但是配置在openejb-jar(https://issues.apache.org/jira/browse/tomee-728)中是显式的,所以第一个解决方案更容易。

 类似资料:
  • 问题内容: 我使用AppFuse创建了一个基本的应用程序外壳,并按照AppFuse教程使用Jax- RS创建了一个简单的RESTful服务。那很好。调用时,将Person对象的集合作为Json格式的字符串返回,并带有正确的数据。 我现在想从Appfuse提供的RESTful服务中访问和对象(以使用需要这些对象的另一个库)。 我 _认为_应该可以通过添加@Context注释来实现,但是,如果我添加@

  • JAX-RS (JSR 311) 是一个社区驱动的标准用于使用 Java 构建 RESTful Web 服务。

  • 如何从JAX-RS资源方法访问原始请求主体,例如或?对于特定的资源类或方法,我希望容器绕过任何,但是项目中有其他资源应该使用一些。 我已经尝试过了,但是它将调用注册的s并且无法将结果分配给()。 我用的是泽西1.11。

  • 问题内容: 请原谅我,但我可能不熟悉正确询问此问题所需的所有术语。 我正在使用jax-rs 的实现在Java中使用一个相当简单的REST Web服务。方法头是这样的: MessageContext在哪里。 我要完成的两件事似乎无法弄清: 如果满足某些条件(例如,出现错误),则更改内容类型 更改响应的状态码 我尝试通过通过MessageContext访问响应来更改响应: 但是这些变化与发送的响应无关

  • 我的jax-rs应用程序的方法: 工作正常。但是,如果修改: 我收到一个错误 服务器Jboss 7.1.1 请告诉我怎么了。 PS.sorry我的英语不好。

  • 我通过一个spring上下文注入了一个JAX RS客户端,如下所示: 在成功响应(200、202、204)的情况下,如何访问响应状态?