小编use*_*801的帖子

在调用正确的@Path后,Jersey返回404

这件事已经让我困惑了一段时间..我正试图在Jetty中嵌入一个Jersey容器.按照示例我可以嵌入Jersey,我看到暴露的REST方法正在暴露.然而,由于一些奇怪的原因,我的泽西岛确实返回了404.看起来泽西岛没有能力解决正确的终点.不幸的是它没有告诉我原因,只是抛出一个NotFoundException :-(.

我100%肯定我的方法被调用.该方法中的System.out.println显示在控制台中,我的Eclipse调试器清楚地传递了set断点.我是否使用Jersey 2.0,2.3,2.4,1,2.4并不重要.所有都有相同的结果..这里是我的配置的代码片段:

StartJetty.java:

        final int mainport = 9123;

        Server jettyServer = new Server(mainport);
        HandlerCollection handlerCollection = new ContextHandlerCollection();
        jettyServer.setHandler(handlerCollection);

        ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/");
        jerseyServlet.setInitOrder(1);
        jerseyServlet.setInitParameter("jersey.config.server.provider.packages", "com.test.rest");

        handlerCollection.addHandler(context);
    jettyServer.start();
        jettyServer.join();
Run Code Online (Sandbox Code Playgroud)

REST资源的代码段: com.test.rest.PersonsRSImpl.class:

@Path("/persons")
@Produces( MediaType.APPLICATION_JSON)
public class PersonsRSImpl {

    private PersonManager personMgr = PersonManager.getInstance();


    @Path("/list")
    public Collection<Person> list() {
        System.out.println("In Person::list" );
        return personMgr.getPersons();
    }


}
Run Code Online (Sandbox Code Playgroud)

我的Person对象是一个简单的POJO,带有一些JAXB注释.添加/删除它们完全没有区别.

最后但并非最不重要的: pom.xml http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>integrationexample</artifactId>
    <packaging>jar</packaging>
    <version>1.0.0-SNAPSHOT</version>
    <name>Test project</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.build.outputEncoding>UTF-8</project.build.outputEncoding>
        <jetty.version>7.5.4.v20111024</jetty.version>
        <jersey.version>2.4.1</jersey.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java rest jetty jersey maven

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jersey ×1

jetty ×1

maven ×1

rest ×1