我想使用端点路径在 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/