jetty servlet,can';t hit@GET方法

jetty servlet,can';t hit@GET方法,jetty,jax-rs,Jetty,Jax Rs,正常情况下我会想办法,但我已经在这件事上纠缠了好几天了。。 构建一个简单的jetty服务器。服务器运行,localhost:8080调出正确的index.html文件。但是我尝试使用@GET和@PATH注释运行java后端,但是我尝试的路径似乎都不起作用。假设我有以下几点: @Resource @Path("hello") public class AjaxCalls{ @PATH("sayHi") @GET public String test(){ r

正常情况下我会想办法,但我已经在这件事上纠缠了好几天了。。 构建一个简单的jetty服务器。服务器运行,localhost:8080调出正确的index.html文件。但是我尝试使用@GET和@PATH注释运行java后端,但是我尝试的路径似乎都不起作用。假设我有以下几点:

@Resource
@Path("hello")
public class AjaxCalls{
    @PATH("sayHi")
    @GET
    public String test(){
        return "Hi";   //breakpoint set here to see if we hit the method
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <servlet>
        <servlet-name>Your REST service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Your REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>
</web-app>

我认为对url:localhost:8080/hello/sayHi的ajax调用至少会达到断点,但运气不好。以前有人用过这种方法吗?我相信这是一些小细节…

一种解释是,为什么您没有使用Jersey
@Get
方法是因为您使用了错误的URL。下面是一个URL示例,假设您还具有以下设置,则该URL应该可以工作:

http://localhost:8080/your-project-WAR/rest/hello/sayHi
如果WAR的名称是
your project WAR.WAR
,并且您有一个
web.xml
外观如下所示,则此URL将命中
@Get
方法
test()

@Resource
@Path("hello")
public class AjaxCalls{
    @PATH("sayHi")
    @GET
    public String test(){
        return "Hi";   //breakpoint set here to see if we hit the method
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <servlet>
        <servlet-name>Your REST service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Your REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>
</web-app>

您的休息服务
org.glassfish.jersey.servlet.ServletContainer
您的休息服务
/休息/*

Tomcat服务器使用URL的
your project WAR
部分,而
web.xml
文件在将其余部分转发到Jersey框架之前使用
/rest
药剂。目前,您使用的URL可能有问题,因为它似乎遗漏了很多东西。我希望这个答案能让你很快走上正确的道路。

一种解释是,你没有使用Jersey
@Get
方法是因为你使用了错误的URL。下面是一个URL示例,假设您还具有以下设置,则该URL应该可以工作:

http://localhost:8080/your-project-WAR/rest/hello/sayHi
如果WAR的名称是
your project WAR.WAR
,并且您有一个
web.xml
外观如下所示,则此URL将命中
@Get
方法
test()

@Resource
@Path("hello")
public class AjaxCalls{
    @PATH("sayHi")
    @GET
    public String test(){
        return "Hi";   //breakpoint set here to see if we hit the method
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <servlet>
        <servlet-name>Your REST service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Your REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>
</web-app>

您的休息服务
org.glassfish.jersey.servlet.ServletContainer
您的休息服务
/休息/*

Tomcat服务器使用URL的
your project WAR
部分,而
web.xml
文件在将其余部分转发到Jersey框架之前使用
/rest
药剂。目前,您使用的URL可能有问题,因为它似乎遗漏了很多东西。我希望这个答案能让你很快找到正确的方向。

我们需要看看你的Jetty服务器设置(假设是嵌入式的)、你的依赖项/JAR以及任何与JAX-RS相关的配置。你能发布你的
web.xml
文件吗?你是说“jersey”吗?(不是“jetty”?)请复习下面给出的答案,谢谢。你的申请课怎么样?@ApplicationPath中有什么内容?我们需要查看Jetty服务器的设置(假设它是嵌入式的)、依赖项/jar以及任何与JAX-RS相关的配置。你能发布你的
web.xml
文件吗?你是说“jersey”吗?(不是“jetty”?)请复习下面给出的答案,谢谢。你的申请课怎么样?@ApplicationPath中有什么?谢谢,抱歉,这是我的第一个web应用。。。我的pom.xml(除了依赖项)看起来是这样的:示例似乎仍然不起作用构建WAR文件后,WAR文件的exsct名称是什么?你是否如我所说更新了你的
web.xml
?谢谢,抱歉,这是我的第一个web应用。。。我的pom.xml(除了依赖项)看起来是这样的:示例似乎仍然不起作用构建WAR文件后,WAR文件的exsct名称是什么?你有没有像我提到的那样更新你的
web.xml