我想使用端点路径在tomcat上运行我的项目 下面是我的两个java文件
这是我的app类
Status
这是端点类
package app;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/t")
public class App extends Application{
}
我的tomcat 7正在运行 但是当我按照路径
在tomcat上运行它时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();
}
}
显示以下错误
http://localhost:8006/ContactApp/t/t1/hi
谁能帮忙?
答案 0 :(得分:3)
@ApplicationPath
只能应用于Application的子类:
标识用作所有人的基本URI的应用程序路径 Path提供的资源URI。可能只适用于子类 应用
对于这个:
@ApplicationPath("/t")
public class App extends Application{
}
很好。
但ContactController
不应该使用@ApplicationPath
声明:
@ApplicationPath("/t1")
public class ContactController {
但是@Path
(没有前导斜杠):
@Path("t1")
public class ContactController {
Path javadoc的摘录:
标识资源类或类方法将使用的URI路径 服务请求。 .... 路径是相对的。对于带注释的类,基URI是 应用程序路径,请参阅ApplicationPath。
最后,您应该删除REST方法@Path
的前导斜杠:@Path("/t1")
这不是必需的,因为Path
的规范解释了前导/
被忽略,并且基本URI的处理就像添加了/
一样。
为了对基URI进行绝对化路径,a 忽略路径中的前导'/',并将基URI视为它们 结束于'/'
所以这些:
@Path("/hi")
...
@Path("/t2")
应替换为:
@Path("hi")
...
@Path("t2")