Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey framework使用@ApplicationPath(";/";)注册包不起作用_Java_Rest_Tomcat7_Jersey 2.0 - Fatal编程技术网

Java Jersey framework使用@ApplicationPath(";/";)注册包不起作用

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("

我是restful服务的新手,尝试学习使用jersey框架。 我使用的是jersey版本2.14,Tomcat 7。 我没有使用web.xml文件,所以我正在使用
@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类添加任何其他注释吗?