![](/img/trans.png)
[英]HTTP Status 404 : Tomcat server starts but in the bowser get 404 error
[英]tomcat 7 - @GET method with @ApplicationPath - status 404 error
我想在tomcat上使用端点路径运行我的项目,这是我的两个java文件
这是我的app类
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的子类:
标识作为Path提供的所有资源URI的基URI的应用程序路径。 可能只适用于Application的子类。
对于这个:
@ApplicationPath("/t")
public class App extends Application{
}
没事。
但不应该使用@ApplicationPath
声明的ContactController
不是这样的:
@ApplicationPath("/t1")
public class ContactController {
但是使用@Path
(没有前导斜杠):
@Path("t1")
public class ContactController {
Path javadoc的摘录:
标识资源类或类方法将为其请求的URI路径。 ....路径是相对的。 对于带注释的类,基URI是应用程序路径,请参阅ApplicationPath。
最后,您应该删除REST方法的@Path
的前导斜杠: @Path("/t1")
它不是必需的,因为Path
的规范说明了前导/
被忽略,并且基本URI的处理就像添加了/
。
为了对基URI进行绝对路径绝对化,路径中的前导'/'被忽略,基URI被视为以'/'结尾
所以这些:
@Path("/hi")
...
@Path("/t2")
应该替换为:
@Path("hi")
...
@Path("t2")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.