当我想开发一个API来调用“外部”方法时,我遇到了一个棘手的问题(这个方法叫做“createClientNode”,这是对neo4j的一个简单请求)。 无论如何,这是我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>API</display-name>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>API</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/API/*</url-pattern>
</servlet-mapping>
</web-app>
这是我的班级:
package API;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.neo4j.graphdb.Node;
import function.query.weceipt.GraphManagement;
@Path("/API")
public class MyService {
@POST
@Path("/node")
@Produces({ MediaType.APPLICATION_JSON })
public Node createNode(@DefaultValue("default_id") @QueryParam("ID") String id) {
GraphManagement gm = new GraphManagement();
Node node = gm.createClientNode(id);
return node;
}
@GET
@Path("/node/{ID}")
@Produces({ MediaType.APPLICATION_JSON })
public Node getNode(@PathParam("ID") String id) {
GraphManagement gm = new GraphManagement();
Node node = gm.getClientNode(id);
return node;
}
@Path("/test")
@GET
@Produces(MediaType.TEXT_PLAIN)
public void afficher() {
System.out.println("test");
}
}
我得到的错误是“Servlet jersey-serlvet不可用”。 我的印象是,我对某个特定的JAR或Tomcat有一个问题,但我找不到这个问题的原因。所以,任何人都可以帮助我,因为我尝试了这个时间!