gpt4 book ai didi

java - tomcat 7 - @GET 方法与@ApplicationPath - 状态 404 错误

转载 作者:行者123 更新时间:2023-11-28 22:07:31 25 4
gpt4 key购买 nike

我想使用端点路径在 tomcat 上运行我的项目以下是我的两个 java 文件

这是我的应用类

package app;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/t")
public class App extends Application{

}

这是端点类

package controllers;

import java.util.List;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import dao.IEntityDAO;
import daoimpl.EntityDAOImpl;
import dto.Contacts;
import view.ContactView;

@ApplicationPath("/t1")
public class ContactController {

@Path("/hi")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getpassword()
{
return "Hiii";
}

@Path("/t2")
@GET()
@Produces(MediaType.APPLICATION_JSON)
public List<ContactView> getallEntity(){

IEntityDAO obj = new EntityDAOImpl();

return obj.getallEntity();
}


}

我的 tomcat 7 正在运行但是当我按照路径在 tomcat 上运行它时

http://localhost:8006/ContactApp/t/t1/hi

它显示以下错误

HTTP Status 404 - /ContactApp/t/t1/hi


type Status report

message /ContactApp/t/t1/hi

description The requested resource is not available.


Apache Tomcat/7.0.47

谁能帮忙??

最佳答案

@ApplicationPath只能应用于 Application 的子类:

Identifies the application path that serves as the base URI for all resource URIs provided by Path. May only be applied to a subclass of Application.

对于这个:

@ApplicationPath("/t")
public class App extends Application{

}

没关系。

但是 ContactController 不应该用 @ApplicationPath 声明:

@ApplicationPath("/t1")
public class ContactController {

但使用 @Path (没有前导斜杠):

@Path("t1")
public class ContactController {

路径 javadoc 的摘录:

Identifies the URI path that a resource class or class method will serve requests for. .... Paths are relative. For an annotated class the base URI is the application path, see ApplicationPath.

最后,您应该删除 REST 方法的 @Path 的前导斜杠:@Path("/t1")

它不是必需的,因为 Path 的规范解释了前导 / 被忽略并且基本 URI 被处理,就好像 / 是添加。

For the purposes of absolutizing a path against the base URI , a leading '/' in a path is ignored and base URIs are treated as if they ended in '/'

所以这些:

@Path("/hi")
...
@Path("/t2")

应替换为:

@Path("hi")
...
@Path("t2")

关于java - tomcat 7 - @GET 方法与@ApplicationPath - 状态 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44880781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com