【问题标题】:Is my issue a result of incorrect url-mappings?我的问题是由于不正确的 url 映射造成的吗?
【发布时间】:2024-04-11 19:25:04
【问题描述】:

我有一个 JBOSS ASS7 服务器托管一个用 java 编写的应用程序。此应用程序具有 JAX-RS 函数(用于响应某些 API 调用)以及一些 servlet。

我有一个 web.xml,其中包含以下两个映射:

<servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/api/*</url-pattern>
</servlet-mapping>

 <servlet>
        <servlet-name>adminServlet</servlet-name>
        <jsp-file>/admin.jsp</jsp-file>
 </servlet>
 <servlet-mapping>

<servlet-name>adminServlet</servlet-name>
        <url-pattern>/admin/</url-pattern>
</servlet-mapping>

在我的一个 .java 文件中:

    @Path("/api/check")
public class ContentCheck {
    private static final Logger Log = LoggerFactory.getLogger(ContentCheck.class);
...etc

知道我的 jboss-web.xml 有:

    <jboss-web>
  <context-root>contentcheck</context-root>
</jboss-web>

现在的问题是,如果我必须:

my.IP.Address/contentcheck/admin.jsp 

我得到一个 http 200(和我的页面)

但如果我去

my.IP.Address/contentcheck/api/check

我得到一个 http 404。

我能找到的唯一线索是错误描述,它谈到了寻找相对路径的问题: 输入状态报告

消息:找不到相对资源:/检查完整路径: my.IP.Address/contentcheck/api/check?ID=1

描述:请求的资源(找不到资源 相对:/检查完整路径: /contentcheck/api/check) 不可用。

我想如果我只是尝试在 JBOSS 服务器上点击一个无意义的 URL,我会得到:

消息:/contentcheck/wdwqd

描述:请求的资源(/contentcheck/wdwqd)不是 可用。

非常感谢您提供的任何帮助

【问题讨论】:

    标签: java web jboss jax-rs url-mapping


    【解决方案1】:

    我认为您可以通过将 @Path("/api/check") 更改为 @Path("/check") 来解决此问题。或者,将 web.xml 中的路径从“/api/”更改为“/”,但怀疑前者是更合适的解决方案。

    目前,如果您访问 /api/api/check,我相信 JAXRS 工作

    【讨论】: