Java Jersey framework使用@ApplicationPath(";/";)注册包不起作用
我是restful服务的新手,尝试学习使用jersey框架。 我使用的是jersey版本2.14,Tomcat 7。 我没有使用web.xml文件,所以我正在使用Java Jersey framework使用@ApplicationPath(";/";)注册包不起作用,java,rest,tomcat7,jersey-2.0,Java,Rest,Tomcat7,Jersey 2.0,我是restful服务的新手,尝试学习使用jersey框架。 我使用的是jersey版本2.14,Tomcat 7。 我没有使用web.xml文件,所以我正在使用@ApplicationPath(“/”)注释注册rest类包 代码如下: @ApplicationPath("/") public class MyApplication extends ResourceConfig { public MyApplication() { System.out.println("
@ApplicationPath(“/”)
注释注册rest类包
代码如下:
@ApplicationPath("/")
public class MyApplication extends ResourceConfig {
public MyApplication() {
System.out.println("Registering packages");
packages("com.sap.earchive.rest.service");
}
}
rest类有一个简单的测试代码
@Path("/archive")
public class ArchiveService {
@Path("/test")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Got it!";
}
}
但当我尝试使用邮递员调用url时,我得到了404错误
我添加了一个日志语句“注册包”,但在tomcat日志文件或控制台中看不到这一点
我想我错过了什么。谁能帮帮我吗?1<代码>/archive?您的
@ApplicationPath上没有该文件。您应该将@Provider
添加到ArchiveService
类添加到@nobeh所说的内容中,虽然我不太习惯@ApplicationPath
注释,但在使用webxml时,Jersey资源路径参数通常以通配符结尾。您的原始示例看起来像@ApplicationPath('/*')
,如果您想在提供的“存档”路径下访问您的“测试”服务端点,它可能看起来像@ApplicationPath('/archive/*')
。我有用于ArchiveService的@path(“/archive”)。我想我在抄写的时候错过了。我现在已经添加了它。谢谢确保您有jersey容器servlet
jar/依赖项。我使用maven创建了jersey项目,因此它包含了所有必需的jar…我尝试添加通配符(*),这也没有帮助:(.我添加了System.out.println(“注册包”);它从来没有被调用过,所以这意味着我的应用程序类从来没有被调用过……我必须向thsi类添加任何其他注释吗?