我想使用终结点路径跟踪在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任何人都能帮忙??
发布于 2017-07-03 08:28:47
@ApplicationPath只能应用于应用程序的子类:
标识作为Path提供的所有资源URI的基URI的应用程序路径。只能应用于应用程序的子类。
这一次:
@ApplicationPath("/t")
public class App extends Application{
}它是好的。
但是对于ContactController来说,不应该用@ApplicationPath声明的情况并非如此:
@ApplicationPath("/t1")
public class ContactController {但是对于@Path (没有前面的斜杠):
@Path("t1")
public class ContactController {路径javadoc的提取:
标识资源类或类方法为请求提供服务的URI路径。……路径是相对的。有关带注释的类,基本URI是应用程序路径,请参见ApplicationPath。
最后,您应该删除REST方法的@Path的前导斜杠:@Path("/t1")
这是不需要的,因为Path规范解释说,前面的/被忽略了,基本URI被处理,就像添加了/一样。
为了将路径对基URI进行绝对化,路径中的前导'/‘将被忽略,基URI被视为以'/’结尾。
因此,这些:
@Path("/hi")
...
@Path("/t2")应改为:
@Path("hi")
...
@Path("t2")https://stackoverflow.com/questions/44880781
复制相似问题