0

我成功创建了一个带有邮政服务的网络应用程序并将其部署在码头上

.

@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 运行这个时,我可以使用所有服务,但是在我成功将它部署到码头后,我无法访问这些服务。

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

本地主机:8080/caas/post

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

注意:caas - 码头指定的上下文

   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;
    }
    
}
4

2 回答 2

0

您需要确保 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>

这将指示 Jersey 在哪里可以找到服务以及 Jersey servlet 路径的外观。

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

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

于 2012-10-30T21:17:53.220 回答
0

它应该是

localhost:8080/<NameOfYourProject>/caas/post

鉴于配置的码头在 8080 上运行

于 2012-10-30T08:12:01.897 回答