我成功地创建了一个带有post服务的web应用程序,并将其部署在jetty上。
。
@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就是这样的:
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;
}
}发布于 2012-10-30 08:12:01
它应该是
localhost:8080/<NameOfYourProject>/caas/post假定配置的jetty可在8080上运行
发布于 2012-10-30 21:17:53
您需要确保泽西的设置是正确的(假设这是您所使用的)。在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路径应该是什么样的。
然后您的服务将在:http://localhost:8080/<YouAppName>/<service_path>/caas/post下面可用。
请注意,您的服务需要在包中(这正是泽西所期望的):full_package_of_your_service
https://stackoverflow.com/questions/13134921
复制相似问题