首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问部署在码头上的jax-rs服务注释

如何访问部署在码头上的jax-rs服务注释
EN

Stack Overflow用户
提问于 2012-10-30 08:07:54
回答 2查看 541关注 0票数 0

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

代码语言:javascript
复制
@Path("caas")
public class Cribservice {
  @POST
    @Path("/post")
    @Consumes(MediaType.TEXT_PLAIN) 
    //@Consumes(MediaType.APPLICATION_JSON)
    //@Produces("text/xml")   // sends JSON
    public void setJson(String p) {
        String x = p;
        System.out.println(x);
        run(x);
    }

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

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

本地主机:8080/caas/post localhost:8080/caas/Cribservice/webresources/caas/post 注: caas -在jetty中指定的上下文 包含jax-rs服务实现caas(2) - @PATH的Cribservice类

我的Applicationconfig.java就是这样的:

代码语言:javascript
复制
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;
    }
    
}
EN

回答 2

Stack Overflow用户

发布于 2012-10-30 08:12:01

它应该是

代码语言:javascript
复制
localhost:8080/<NameOfYourProject>/caas/post

假定配置的jetty可在8080上运行

票数 0
EN

Stack Overflow用户

发布于 2012-10-30 21:17:53

您需要确保泽西的设置是正确的(假设这是您所使用的)。在web.xml中,您需要添加:

代码语言:javascript
复制
<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>

这将指示泽西岛在哪里找到服务,以及Jersey路径应该是什么样的。

然后您的服务将在:http://localhost:8080/<YouAppName>/<service_path>/caas/post下面可用。

请注意,您的服务需要在包中(这正是泽西所期望的):full_package_of_your_service

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13134921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档