Java 请求的资源在REST中不可用

Java 请求的资源在REST中不可用,java,rest,maven,tomcat,Java,Rest,Maven,Tomcat,我在使用@FormParam时遇到了问题,请帮助我,我不知道为什么这个项目不能在Eclipse Luna上与tomcat 7和java 7一起工作: web.xml 我的控制台: SEVERE: Servlet /RESTform threw load() exception java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer at org.apache.catal

我在使用@FormParam时遇到了问题,请帮助我,我不知道为什么这个项目不能在Eclipse Luna上与tomcat 7和java 7一起工作:

web.xml

我的控制台:

SEVERE: Servlet /RESTform threw load() exception
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:550)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:531)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1041)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4932)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5218)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

显然,问题在于ClassNotFoundException缺少一个依赖项

我认为你需要把依赖性作为-

用这个

       <dependency>    
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.18.1</version>
    </dependency>

此外,如果删除jersey core依赖项,hersey服务器将自动下载其余的依赖项JAR,现在它可以正常工作了。我将asm.jar添加到tomcat和project中,结果很好:D
谢谢:

核心真的应该是URL的一部分吗?我认为user/add就足够了。它只是核心:with或wihtout core是同一个错误它的classnotfoundexception你缺少一个jar从pom中删除jersey core依赖项…jersey服务器将自动下载相应的核心jar。检查lib是否在Tomcaty内部的webapp中获得jar是同一个异常不幸地Tomcat在没有projectno的情况下运行良好,请转到Tomcat/webapps/{your project directory}/lib…检查lib目录中的jar在Tomcat/webapps中我只有5个文件夹:docs、examples、host manager、manager和ROOT。我的文件夹名是RESTformyes,转到您的文件夹,在该文件夹下转到WEB-INF,检查lib文件夹并检查是否包含所有必需的JAR…可能lib文件夹可能无法从maven构建中获取JAR
<html>
<body>
    <h1>Suma REST @FormQuery </h1>

    <form action="core/user/add" method="post">
        <p>
            Number 1: <input type="text" name="number1" />
        </p>
        <p>
            Number 2: <input type="text" name="number2" />
        </p>
        <p>
            Number 3: <input type="text" name="number3" />
        </p>
        <p>
            Number 4: <input type="text" name="number4" />
        </p>
        <p>
            Number 5: <input type="text" name="number5" />
        </p>
        <input type="submit" value="Suma" />
    </form>

</body>
</html>
package com.adam.core;

import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;

import javax.ws.rs.core.Response;

@Path("/user")
public class UserService {

    @POST
    @Path("/add")
    public Response addUser(
        @FormParam("number1") int number1,
        @FormParam("number2") int number2,
        @FormParam("number3") int number3,
        @FormParam("number4") int number4,
        @FormParam("number5") int number5){

        return Response.status(200).entity("Suma : " + (number1+number2+number3+number4+number5)).build();
    }
}
SEVERE: Servlet /RESTform threw load() exception
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:550)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:531)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1041)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4932)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5218)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
       <dependency>    
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.18.1</version>
    </dependency>