(我不小心删除了我在这个问题中提到的要点;很抱歉给您带来不便。)
问题
我正在尝试按照Jersey's user guide使用Servlet 3.0 API来部署 Jersey 根资源(那些带有@Path
注释的资源)。
我在 GitHub 上创建了一个包含两个类的要点:Foo.java
这是通过其方法Application
公开Bar.java
(资源类)的子类。getClasses()
(也有一个pom.xml
,所以任何人都可以轻松地为自己/他自己尝试一下。)
但是,当我尝试将打包的战争部署到 Jetty 8.0.x 实例时,我在 pastebin 处获得了可用的输出。
Foo.java
被调用,它的getClasses()
方法也被调用,而Bar.java
从未被调用。
我可以在 到达 Jetty 的欢迎页面http://localhost:8080/
,但是我无法到达http://localhost:8080/foo
或http://localhost:8080/foo/bar
。后两者导致以下错误:
未找到错误
自定义 404 页面
可能是什么问题呢?我在这里做错了吗?
答案
鉴于我使用的 WAR ( test-0.0.1-SNAPSHOT.war
),我的应用程序路径变成http://localhost:8080/test-0.0.1-SNAPSHOT/foo/bar
了http://localhost:8080/foo/bar
. 看看我在那里做了什么?好的。把它铭刻在你的脑海中,否则会失去你生命中 3 到 5 个宝贵的时间!