Jakarta ee JAX-RS应用程序子类未注册
我试图在Tomcat7.0.34.0上使用Servlet3.0类开发一个RESTful Web应用程序,但似乎没有任何效果。我以前使用Jersey ServletContainer方法并在web.xml中声明所有REST服务的应用程序都没有问题 我当前的应用程序子类:Jakarta ee JAX-RS应用程序子类未注册,jakarta-ee,tomcat,jax-rs,servlet-3.0,Jakarta Ee,Tomcat,Jax Rs,Servlet 3.0,我试图在Tomcat7.0.34.0上使用Servlet3.0类开发一个RESTful Web应用程序,但似乎没有任何效果。我以前使用Jersey ServletContainer方法并在web.xml中声明所有REST服务的应用程序都没有问题 我当前的应用程序子类: package aaa; @ApplicationPath("/test") public class ApplicationConfig extends Application { @Override publ
package aaa;
@ApplicationPath("/test")
public class ApplicationConfig extends Application
{
@Override
public Set<Class<?>> getClasses ()
{
Set<Class<?>> resources = new java.util.HashSet<Class<?>> ();
resources.add (aaa.TestResource.class);
return resources;
}
}
当我尝试部署应用程序时,Tomcat告诉我上下文已重新加载:
INFO: Reloading Context with name [/WebApplication1] has started
Nov 10, 2013 7:06:25 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/WebApplication1] is completed
web应用程序本身已经部署(我可以访问它的JSP页面)——但是,“测试”资源仍然不可用。我尝试了所有可能的URL,但只得到了404的响应。应用程序配置似乎从未加载过
有趣的一点:根据中的建议,我尝试添加一个不带任何字符的小型web.xml并删除@ApplicationPath。结果是一个NullPointerException,这正是我在Servlet2.x环境中所期望的行为(没有指定类,因此类加载器崩溃)
我在这里不知所措。有没有关于我做错了什么的建议
PS:我使用的是NetBeans 7.3.1,项目是[Java Web->Web应用程序->Java EE 6 Web],没有额外的库,也没有上下文/依赖项注入。您的
test
资源是在TestResource
类中定义的,而重写的getClasses
方法只返回一个包含simpletstresource.class
的集合。虽然我不知道SimpletestResource是什么样子,但是AFAIK@Path
并没有被继承。因此,我认为您应该将TestResource.class
放在该集中
使用NetBeans 7.4在Tomcat 7.0.27上进行了尝试和测试。添加了库:JAX-RS 2.0和Jersey 2.0。我没有看到子类。请告诉我们<代码> > SimeTestReals的代码。@ LutZurn抱歉,我在发布问题时实际上将SimeTestRestor改名为TestRoad,并且忘记更正我发布的代码。ApplicationConfig确实正确地添加了TestResource—现在编辑问题以反映它。这是我的一个错误:代码实际上在
ApplicationConfig
中添加了TestResource
。我已经更新了这个问题。对不起。
INFO: Reloading Context with name [/WebApplication1] has started
Nov 10, 2013 7:06:25 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/WebApplication1] is completed