虽然这是一个古老的问题,但我仍然找不到能够做到这一点的答案.如果您发现我的任何陈述不正确,请更正.
我有一个Java Face应用程序并使用REST作为Web服务.我不认为Face与我的问题有任何关系.web.xml是:
<servlet>
<servlet-name>NDREST</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>com.bi.nd.webservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>NDREST</servlet-name>
<url-pattern>/nd/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我在web.xml中有更多的servlet,因为它是一个与Trinidad等的Face应用程序.
在com.bi.nd.webservice包中,我的资源类是:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Produces(MediaType.APPLICATION_XML)
@Path("/hello")
public class TransactionResource
{
public TransactionResource()
{
}
@GET
@Produces(MediaType.TEXT_PLAIN)
public String itWorks()
{
return "Get is OK";
}
}
Run Code Online (Sandbox Code Playgroud)
我的类有一个@GET的事实足以将自己标识为资源类.
更别说所有其他复杂性了,我在Eclipse中用Ant编译了我的源代码,我在catalina.out文件中遇到了这个错误:
May 24, 2011 8:48:46 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages: …Run Code Online (Sandbox Code Playgroud)