2016-11-24 12 views
1

私はREST WebサービスでWebApplicationを構築しようとしており、すでにいくつかの問題に成功しました。しかし、私はこれまでこれを解決できませんでした。RESTジャージーjson NoSuchFieldError:WADLとIllegalStateException

私はTomCat v7.0ローカルホストを使用していて、簡単な@GETリソースにアクセスしようとしています。私は、リソースをクリックしたときには、以下のエラーが表示されます。

A MultiException has 2 exceptions. They are: 
1. java.lang.NoSuchFieldError: WADL 
2. java.lang.IllegalStateException: Unable to perform operation: create on org.glassfish.jersey.server.wadl.processor.WadlModelProcessor 

私はstackoverflowのを検索し、私はこれを開始(2016年4月に尋ねた)多分、同一の問題で質問が、ありませんソリューション

を発見しました。 eclipseネオンでMavenプロジェクトとしてプロジェクト。ここで

は、いくつかのファイルは、以下のとおりです。

のweb.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- This web.xml file is not required when using Servlet 3.0 container, 
    see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html --> 
<web-app version="2.5" 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_2_5.xsd"> 
    <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>org.project.projecttest</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>data.controller</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 Web Application</servlet-name> 
     <url-pattern>/resource/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

のpom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.project</groupId> 
    <artifactId>projecttest</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>projecttest</name> 

    <build> 
     <finalName>projecttest</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.5.1</version> 
       <inherited>true</inherited> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <repositories> 
    <repository> 
     <id>central</id> 
     <name>Central Repository</name> 
     <url>http://repo2.maven.org/maven2/</url> 
     <layout>default</layout> 
     <snapshots> 
     <enabled>false</enabled> 
     </snapshots> 
    </repository> 
    </repositories> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.glassfish.jersey</groupId> 
       <artifactId>jersey-bom</artifactId> 
       <version>${jersey.version}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <dependencies> 
     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <artifactId>jersey-container-servlet-core</artifactId> 
      <!-- use the following artifactId if you don't need servlet 2.x compatibility --> 
      <!-- artifactId>jersey-container-servlet</artifactId --> 
     </dependency> 
     <!-- uncomment this to get JSON support--> 
     <dependency> 
      <groupId>org.glassfish.jersey.media</groupId> 
      <artifactId>jersey-media-moxy</artifactId> 
     </dependency> 
     <!-- --> 
    </dependencies> 
    <properties> 
     <jersey.version>2.16</jersey.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
</project> 

シンプルなREST Testクラス:

package data.controller; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.core.Response; 

@Path("/test") 
public class RESTTest { 

    @GET 
    public Response getString() { 
     return Response.status(200).entity("getString is called").build(); 
    } 
} 

、そして最後にスタックトレース:

HTTP Status 500 - Servlet.init() for servlet Jersey Web Application threw exception 


type Exception report 

message Servlet.init() for servlet Jersey Web Application threw exception 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 
javax.servlet.ServletException: Servlet.init() for servlet Jersey Web Application threw exception 

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Unknown Source) 


root cause A MultiException has 2 exceptions. They are: 
1. java.lang.NoSuchFieldError: WADL 
2. java.lang.IllegalStateException: Unable to perform operation: create on org.glassfish.jersey.server.wadl.processor.WadlModelProcessor 

org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:394) 
org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456) 
org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:114) 
org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:102) 
org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97) 
java.util.concurrent.FutureTask.run(Unknown Source) 
org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154) 
org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199) 
org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:153) 
org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2151) 
org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98) 
org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87) 
org.glassfish.jersey.internal.inject.Providers.getAllRankedProviders(Providers.java:245) 
org.glassfish.jersey.server.ApplicationHandler.processResourceModel(ApplicationHandler.java:704) 
org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:457) 
org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:163) 
org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:323) 
org.glassfish.jersey.internal.Errors$2.call(Errors.java:289) 
org.glassfish.jersey.internal.Errors$2.call(Errors.java:286) 
org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286) 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:320) 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285) 
org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:310) 
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) 
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358) 
javax.servlet.GenericServlet.init(GenericServlet.java:158) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Unknown Source) 


root cause java.lang.NoSuchFieldError: WADL org.glassfish.jersey.server.wadl.processor.WadlModelProcessor.<init>(WadlModelProcessor.java:96) 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
java.lang.reflect.Constructor.newInstance(Unknown Source) 
org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1104) 
org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:274) 
org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:368) 
org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456) 
org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:114) 
org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:102) 
org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97) 
java.util.concurrent.FutureTask.run(Unknown Source) 
org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154) 
org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199) 
org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:153) 
org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2151) 
org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98) 
org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87) 
org.glassfish.jersey.internal.inject.Providers.getAllRankedProviders(Providers.java:245) 
org.glassfish.jersey.server.ApplicationHandler.processResourceModel(ApplicationHandler.java:704) 
org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:457) 
org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:163) 
org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:323) 
org.glassfish.jersey.internal.Errors$2.call(Errors.java:289) 
org.glassfish.jersey.internal.Errors$2.call(Errors.java:286) 
org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286) 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:320) 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285) 
org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:310) 
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) 
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358) 
javax.servlet.GenericServlet.init(GenericServlet.java:158) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Unknown Source) 

私Libsの: referenced libraries WEB-INF lib-folder

私は問題がいくつかのLIBSによって引き起こされるかもしれないと思うが、私はよく分かりませんいくつかの変更がこの問題を解決していませんでした。

私は各回答に感謝しています。私が何かを忘れた場合は、お気軽にお問い合わせください。 は、私はあなたが@RequestMapping注釈を欠場持っていると思う

答えて

0

ありがとう

例えば

@RequestMapping(value="/methodName", method=RequestMethod.GET) 
    public Response getString() { 
     return Response.status(200).entity("getString is called").build(); 
    } 
+0

こんにちはvaibhav patil、私はそれを試みましたが、成功しませんでした。資源のより簡単な方法 "(@GET) \tパブリック文字列のgetString(){ \t \tリターン "こんにちは"; \t}" 達人例等は、didntの仕事を与えます。 –

関連する問題