Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat 7.0服务无法启动ClassNotFoundException:javax.ws.rs.ProcessingException_Java_Web Services_Tomcat - Fatal编程技术网

Tomcat 7.0服务无法启动ClassNotFoundException:javax.ws.rs.ProcessingException

Tomcat 7.0服务无法启动ClassNotFoundException:javax.ws.rs.ProcessingException,java,web-services,tomcat,Java,Web Services,Tomcat,我有一个toy REST web服务,我正试图将其部署到Tomcat 7.0服务器上。问题是我甚至不能启动服务器。下面是我收到的错误消息: 严重:启动期间子容器失败 java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/HelloWorldRestS

我有一个toy REST web服务,我正试图将其部署到Tomcat 7.0服务器上。问题是我甚至不能启动服务器。下面是我收到的错误消息:

严重:启动期间子容器失败 java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/HelloWorldRestService]] 位于java.util.concurrent.FutureTask.report(FutureTask.java:133) 位于java.util.concurrent.FutureTask.get(FutureTask.java:199) 位于org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 位于org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 在java.util.concurrent.FutureTask.run(FutureTask.java:273)处 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1170) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:640) 运行(Thread.java:853) 原因:org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/HelloWorldRestService]] 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 还有6个

原因:java.lang.NoClassDefFoundError:javax.ws.rs.ProcessingException 位于java.lang.J9VMInternals.prepareClassImpl(本机方法) 在java.lang.J9VMInternals.prepare(J9VMInternals.java:1122) 位于java.lang.Class.getDeclaredFields(Class.java:685) 位于org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) 位于org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263) 位于org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:142) 位于org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67) 在org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)上 位于org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) 位于org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) 在org.apache.catalina.util.LifecycleSupport.FireLifecycleSupport(LifecycleSupport.java:119)上 位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 还有6个 原因:java.lang.ClassNotFoundException:javax.ws.rs.ProcessingException 位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) 位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) ... 20多

严重:启动期间子容器失败 java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:无法启动组件[StandardEngine[catalina].StandardHost[localhost]] 位于java.util.concurrent.FutureTask.report(FutureTask.java:133) 位于java.util.concurrent.FutureTask.get(FutureTask.java:199) 位于org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 位于org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 位于org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 位于org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 位于org.apache.catalina.startup.catalina.start(catalina.java:691) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)中 位于java.lang.reflect.Method.invoke(Method.java:619) 位于org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456) 原因:org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost]] 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 在java.util.concurrent.FutureTask.run(FutureTask.java:273)处 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1170) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:640) 运行(Thread.java:853) 原因:org.apache.catalina.LifecycleException:启动期间子容器失败 位于org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 位于org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 还有6个

严重:所需的服务器组件无法启动,因此Tomcat无法启动。 org.apache.catalina.LifecycleeException:无法启动组件[StandardServer[8005]] 位于org.apache.catalina.util.LifecycleBase.st
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>HelloWorldRestService</display-name>
<servlet>
    <servlet-name>java.helloworldrestservice.resources.HelloWorldApplication</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

    <!-- Register JAX-RS Application, if needed. -->
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>java.helloworldrestservice.resources.HelloWorldApplication</param-value>
    </init-param>

    <!-- Register resources and providers under my.package. -->
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>java.helloworldrestservice.resources</param-value>
    </init-param>

    <!-- Enable Tracing support. -->
    <init-param>
        <param-name>jersey.config.server.tracing</param-name>
        <param-value>ALL</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>java.helloworldrestservice.resources.HelloWorldApplication</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
package java.helloworldrestservice.resources;

import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;


public class HelloWorldApplication extends Application 
{

@Override
public Set<Class<?>> getClasses()
{
    //log.info("starting the HelloWorld application...");
    Set<Class<?>> set = new HashSet<Class<?>>();
    set.add(HelloWorld.class);
    return set;
}
}
package java.helloworldrestservice.resources;


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello()
{
    return "Hello World!!";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
>
  <servlet>
    <servlet-name>rest-test</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.domain.mypackage</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name> rest-test</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app>
<dependencies>
  <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.18.2</version>
  </dependency>
  ...
</dependencies>
package com.domain.mypackage;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.MatrixParam;
import javax.ws.rs.Path;

// It's good practice to include a version number in the path so you can have
// multiple versions deployed at once. That way consumers don't need to upgrade
// right away if things are working for them.
@Path("calc/1.0")
public class CalculatorV1_0 {
  @GET
  @Consumes("text/plain")
  @Produces("text/plain")
  @Path("addTwoNumbers")
  public String add(@MatrixParam("firstNumber") int n1, @MatrixParam("secondNumber") int n2) {
    return String.valueOf(n1 + n2);
  }
}
http://localhost:8080/myContext/rest/calc/1.0/addTwoNumbers;firstNumber=2;secondNumber=3