Jakarta ee 如何访问部署在jetty上的jax rs的服务注释

Jakarta ee 如何访问部署在jetty上的jax rs的服务注释,jakarta-ee,jetty,jersey,jax-rs,resteasy,Jakarta Ee,Jetty,Jersey,Jax Rs,Resteasy,我成功地创建了一个带有post服务的web应用程序,并将其部署在jetty上 当我使用netbeans运行这个时,我可以使用所有的服务,但是在我成功地将它部署到jetty之后,我无法访问这些服务 我应该使用哪个地址访问资源位置 : 本地主机:8080/caas/post 本地主机:8080/caas/Cribservice/webresources/caas/post 注:caas-jetty中规定的上下文 Cribservice - class containing the jax-r

我成功地创建了一个带有post服务的web应用程序,并将其部署在jetty上

当我使用netbeans运行这个时,我可以使用所有的服务,但是在我成功地将它部署到jetty之后,我无法访问这些服务

我应该使用哪个地址访问资源位置

:

本地主机:8080/caas/post

本地主机:8080/caas/Cribservice/webresources/caas/post

注:caas-jetty中规定的上下文

   Cribservice - class containing the jax-rs service implementation

   caas(2) - @PATH
这就是我的Applicationconfig.java的样子:

package org.netbeans.rest.application.config;
import java.util.Set;
import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {

    public Set<Class<?>> getClasses() {
        return getRestResourceClasses();
    }

    /**
     * Do not modify this method. It is automatically generated by NetBeans REST support.
     */
    private Set<Class<?>> getRestResourceClasses() {
        Set<Class<?>> resources = new java.util.HashSet<Class<?>>();
        resources.add(cribservice.Cribservice.class);
        return resources;
    }
    
}
package org.netbeans.rest.application.config;
导入java.util.Set;
导入javax.ws.rs.core.Application;
@javax.ws.rs.ApplicationPath(“webresources”)
公共类应用程序配置扩展应用程序{
public Set>getrestresourcelasses(){
Set>();
添加(cribservice.cribservice.class);
归还资源;
}
}
应该是

localhost:8080/<NameOfYourProject>/caas/post
localhost:8080//caas/post

考虑到jetty配置为在8080上运行,您需要确保Jersey的设置正确(假设您使用的是Jersey)。在web.xml中,您需要添加:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
       <param-name>com.sun.jersey.config.property.packages</param-name>
       <param-value>`full_package_of_your_service`</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>`/service_path/*`</url-pattern>
</servlet-mapping>

泽西岛休息服务
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
`全套您的服务`
1.
泽西岛休息服务
`/服务路径/*`
这将指示Jersey在何处查找服务以及Jersey servlet路径的外观

然后您的服务将在以下位置可用:
http://localhost:8080///caas/post


请注意,您的服务需要在包中(这是Jersey所期望的):
您的服务的完整包

我在/etc/jetty/context下的context.xml中指定了“caas”,因此当我访问http:/localhost:8080/caas时,我可以看到helloworld,caas也作为@path(“caas”)给出,在类i下有@path(“/post”)在这种情况下,我没有xml servlet映射。我使用服务作为模式来创建服务,而不是使用maveni编辑的applicationconfig.java,是否有任何错误,我没有使用web.xml,但我假设netbeans将在生成的war文件中自动配置appconfig.java,这一假设不起作用吗?我没有使用web.xml,我使用的是ApplicationConfig.java我使用的是netbeans,所以即使我试图编辑ApplicationConfig.java,它也会说不要修改此方法,它将由netbeans通过服务路径自动生成。您是指ApplicationConfig.java中指定的应用路径,以及什么是“完整的包-您的服务”和“完整的包-您的服务”是服务类的Java包。现在查看您的服务的初始URL:,您应该删除该服务并作为访问它。url的模式为:////
<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
       <param-name>com.sun.jersey.config.property.packages</param-name>
       <param-value>`full_package_of_your_service`</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>`/service_path/*`</url-pattern>
</servlet-mapping>