我的问题是不正确的网址映射造成的吗?

时间:2017-01-21 19:34:43

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

我有一个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 /内容检查/ API /检查?ID = 1

     

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

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

  

消息:/ contentcheck / wdwqd

     

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

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

1 个答案:

答案 0 :(得分:0)

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

目前我相信如果您访问/ api / api / check

,JAXRS 工作