首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tomcat 7- @GET方法与@ApplicationPath -状态404错误

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

Stack Overflow用户
提问于 2017-07-03 08:19:09
回答 1查看 822关注 0票数 1

我想使用终结点路径跟踪在tomcat上运行我的项目,这是我的两个java文件。

这是我的应用程序课

代码语言:javascript
复制
package app;

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

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

    }

这是端点类。

代码语言:javascript
复制
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上运行它时

代码语言:javascript
复制
http://localhost:8006/ContactApp/t/t1/hi

它显示以下错误

代码语言:javascript
复制
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

任何人都能帮忙??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-03 08:28:47

@ApplicationPath只能应用于应用程序的子类:

标识作为Path提供的所有资源URI的基URI的应用程序路径。只能应用于应用程序的子类。

这一次:

代码语言:javascript
复制
@ApplicationPath("/t")
public class App extends Application{

}

它是好的。

但是对于ContactController来说,不应该用@ApplicationPath声明的情况并非如此:

代码语言:javascript
复制
@ApplicationPath("/t1")
public class ContactController {

但是对于@Path (没有前面的斜杠):

代码语言:javascript
复制
@Path("t1")
public class ContactController {

路径javadoc的提取:

标识资源类或类方法为请求提供服务的URI路径。……路径是相对的。有关带注释的类,基本URI是应用程序路径,请参见ApplicationPath。

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

这是不需要的,因为Path规范解释说,前面的/被忽略了,基本URI被处理,就像添加了/一样。

为了将路径对基URI进行绝对化,路径中的前导'/‘将被忽略,基URI被视为以'/’结尾。

因此,这些:

代码语言:javascript
复制
@Path("/hi")
...
@Path("/t2")

应改为:

代码语言:javascript
复制
@Path("hi")
...
@Path("t2")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44880781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档