我有一个托管网页,网络套接字的网页应用,我正在尝试添加REST服务。它在Tomcat 8上运行,我使用Jersey 2.11进行REST。我正在使用ApplicationPath
并扩展Application
来注册我的服务,并在调试器中暂停,告诉我正在调用getClasses
并且我的处理程序已返回。
但是对于我的生活,我无法找出处理程序的URL。我尝试的一切都返回404,除了我的静态页面,以及websocket处理程序。
这是我的Application
:
@ApplicationPath("rest")
public class RestApp extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<>();
s.add(Test.class);
return s;
}
}
这是我的测试REST处理程序:
@Path("test")
public class Test {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String testMethod(){
return "test";
}
}
http://localhost:8080/webapp
将返回我的index.html。但我找不到上面的testMethod的URL。 http://localhost:8080/webapp/rest/test/testMethod
返回404错误。我尝试过省略URL部分的变体,但没有成功。我理解的URL映射是:http://localhost:8080/<appname>/<ApplicationPath>/<Path>/<method>
映射是否不正确,或者我在这里遗漏了什么?