为了账号安全,请及时绑定邮箱和手机立即绑定

Java REST - 找不到 404 资源

Java REST - 找不到 404 资源

九州编程 2021-05-31 17:02:00
我正在尝试访问我的 Hello world(目前)应用程序上的资源。但是,我得到了这个 HTTP 状态 404 - 当我在 Tomcat 上部署它并点击 URL 时找不到它:localhost:8080/test/rest。这是我的 pom.xml 依赖项:<dependency>        <groupId>org.glassfish.jersey.core</groupId>        <artifactId>jersey-common</artifactId>        <version>2.26-b03</version></dependency><dependency>       <groupId>org.glassfish.jersey.core</groupId>       <artifactId>jersey-server</artifactId>       <version>2.26-b03</version></dependency><dependency>        <groupId>javax.servlet</groupId>        <artifactId>javax.servlet-api</artifactId>        <version>3.1.0</version></dependency><dependency>        <groupId>org.glassfish.jersey.containers</groupId>        <artifactId>jersey-container-servlet</artifactId>        <version>2.26-b03</version></dependency><dependency>       <groupId>junit</groupId>       <artifactId>junit</artifactId>       <version>4.11</version>       <scope>test</scope></dependency>这是我的 web.xml 配置:<web-app>    <display-name>Archetype Created Web Application</display-name><servlet>    <servlet-name>HelloWorld Jersey Service </servlet-name>    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param>    <param-name >jersey.config.server.provider.packages</param-name>    <param-value >com.latin.translator.app</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name >HelloWorld Jersey Service </servlet-name >    <url-pattern >/test/*</url-pattern ></servlet-mapping></web-app>Java代码是:@Path("/test")public class Test {    @GET    @Produces(TEXT_PLAIN)    @Path("/rest")    public String test() {        return "Great success";    }}你有什么想法我做错了什么吗?
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

尝试本地主机:8080/test/test/rest


<servlet-mapping>

    <servlet-name >HelloWorld Jersey Service </servlet-name >

    <url-pattern >/test/*</url-pattern >

</servlet-mapping>

这表示 root 是 test 所以 url 是 localhost:8080/test/ for jesrsey


现在


@Path("/test")

public class Test {

说现在下一个 url 路径是 test 所以 url 是 localhost:8080/test/test


@Path("/rest")

    public String test() {

        return "Great success";

    }

说 /rest 作为下一个 url 所以它的 localhost:8080/test/test/rest


查看完整回答
反对 回复 2021-06-02
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

您需要扩展javax.ws.rs.core.Application该类。


@ApplicationPath("/") // the context root of you application

public class JaxRsConfig extends Application {


      private final Set<Class<?>> classes;


      public JaxRsConfig() {

        HashSet<Class<?>> c = new HashSet<>();

        c.add(Test.class); //repeat for all JAX-RS classes in your application


        classes = Collections.unmodifiableSet(c);

      }


      @Override

      public Set<Class<?>> getClasses() {

        return classes;

      }


}

有了这个,您就不需要 web.xml 文件了。


查看完整回答
反对 回复 2021-06-02
  • 3 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信