title: Jersey Restful failed with error "java.lang.NoSuchMethodException: Could not find a suitable constructor"
body: <p>The simple restful code based on Jersey</p>
  
  <pre class="lang-java prettyprint-override"><code>import javax.ws.rs.ApplicationPath;
  import javax.ws.rs.core.Application;
  
  import com.yakima.core.webservice.resource.UserResource;
  import org.glassfish.jersey.jettison.JettisonFeature;
  import org.glassfish.jersey.server.ResourceConfig;
  
  import java.util.HashSet;
  import java.util.Set;
  import java.util.logging.Logger;
  
  @ApplicationPath("/")
  public class Servlet extends ResourceConfig{
  Logger log =  Logger.getLogger(Servlet.class.getName());
  public Servlet() {
      registerClasses(UserResource.class);
      register(new JettisonFeature());
      packages("com.yakima.core.webservice");
      log.info("--------------registered--------");
      }
  }
  </code></pre>
  
  <p>resource class</p>
  
  <pre class="lang-java prettyprint-override"><code>import javax.persistence.*;
  import javax.ws.rs.*;
  import javax.ws.rs.core.Context;
  import javax.ws.rs.core.MediaType;
  import javax.ws.rs.core.UriInfo;
  
  import org.codehaus.jettison.json.JSONException;
  import org.codehaus.jettison.json.JSONObject;
  
  import java.util.List;
  import java.util.logging.Logger;
  
  @Path("/")
  public class UserResource {
  Logger log =  Logger.getLogger(UserResource.class.getName());
  
  @PersistenceUnit(unitName = "dev")
  EntityManagerFactory emf;
  
  @Context
  UriInfo uriInfo;
  
  public UserResource() {
  }
  
  @GET @Path("ping")
  @Produces(MediaType.TEXT_PLAIN)
  @SuppressWarnings("unchecked")
  public String getHeathCheck() {
      log.info("getHeathCheck");
      return "pang";
  }
  }
  </code></pre>
  
  <p>web.xml </p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;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"&gt;
  &lt;display-name&gt;my REST service&lt;/display-name&gt;
  &lt;servlet&gt;
      &lt;servlet-name&gt;Jersey REST Service&lt;/servlet-name&gt;
      &lt;servlet-class&gt;org.glassfish.jersey.servlet.ServletContainer&lt;/servlet-class&gt;
      &lt;init-param&gt;
          &lt;param-name&gt;jersey.config.server.provider.packages&lt;/param-name&gt;
          &lt;param-value&gt;com.yakima.core.webservice&lt;/param-value&gt;
      &lt;/init-param&gt;
      &lt;init-param&gt;
          &lt;param-name&gt;unit:dev&lt;/param-name&gt;
          &lt;param-value&gt;persistence/dev&lt;/param-value&gt;
      &lt;/init-param&gt;
      &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
      &lt;servlet-name&gt;Jersey REST Service&lt;/servlet-name&gt;
      &lt;url-pattern&gt;/api/*&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
  
  &lt;persistence-unit-ref&gt;
      &lt;persistence-unit-ref-name&gt;persistence/dev&lt;/persistence-unit-ref-name&gt;
      &lt;persistence-unit-name&gt;dev&lt;/persistence-unit-name&gt;
  &lt;/persistence-unit-ref&gt;
  
  &lt;/web-app&gt;
  </code></pre>
  
  <p>persistence.xml</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt;
  &lt;persistence-unit name="dev" transaction-type="JTA"&gt;
      &lt;provider&gt;oracle.toplink.essentials.PersistenceProvider&lt;/provider&gt;
  
      &lt;properties&gt;
          &lt;property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/dev"/&gt;
          &lt;property name="toplink.jdbc.user" value="root"/&gt;
          &lt;property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/&gt;
          &lt;property name="toplink.jdbc.password" value="password"/&gt;
          &lt;property name="toplink.ddl-generation" value="drop-and-create-tables"/&gt;
      &lt;/properties&gt;
  &lt;/persistence-unit&gt;
  </code></pre>
  
  <p></p>
  
  <p>error shows below after deploy</p>
  
  <pre class="lang-java prettyprint-override"><code>
  Jun 26, 2014 1:59:18 AM org.glassfish.jersey.internal.Errors logErrors
  WARNING: The following warnings have been detected: WARNING: HK2 service reification failed for [com.yakima.core.webservice.resource.UserResource] with an exception:
  MultiException stack 1 of 2
  java.lang.NoSuchMethodException: Could not find a suitable constructor in com.yakima.core.webservice.resource.UserResource class.
      at org.glassfish.jersey.internal.inject.JerseyClassAnalyzer.getConstructor(JerseyClassAnalyzer.java:189)
      at org.jvnet.hk2.internal.Utilities.getConstructor(Utilities.java:183)
      at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:129)
      at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:182)
      at org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:649)
      at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:604)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:417)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2099)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.access$900(ServiceLocatorImpl.java:119)
      at org.jvnet.hk2.internal.ServiceLocatorImpl$8.compute(ServiceLocatorImpl.java:1051)
      at org.jvnet.hk2.internal.ServiceLocatorImpl$8.compute(ServiceLocatorImpl.java:1046)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:115)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:111)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture.run(LRUHybridCache.java:173)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache.compute(LRUHybridCache.java:292)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetDescriptor(ServiceLocatorImpl.java:1135)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:636)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:626)
      at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:172)
      at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185)
      at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:94)
      at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:63)
      at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197)
      at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:261)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:252)
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1025)
      at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:744)
  MultiException stack 2 of 2
  java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(
      implementation=com.yakima.core.webservice.resource.UserResource
      contracts={com.yakima.core.webservice.resource.UserResource}
      scope=org.glassfish.jersey.process.internal.RequestScoped
      qualifiers={}
      descriptorType=CLASS
      descriptorVisibility=NORMAL
      metadata=
      rank=0
      loader=null
      proxiable=null
      proxyForSameScope=null
      analysisName=null
      id=144
      locatorId=2
      identityHashCode=701724234
      reified=false)
      at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:615)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:417)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2099)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.access$900(ServiceLocatorImpl.java:119)
      at org.jvnet.hk2.internal.ServiceLocatorImpl$8.compute(ServiceLocatorImpl.java:1051)
      at org.jvnet.hk2.internal.ServiceLocatorImpl$8.compute(ServiceLocatorImpl.java:1046)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:115)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:111)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture.run(LRUHybridCache.java:173)
      at org.glassfish.hk2.utilities.cache.LRUHybridCache.compute(LRUHybridCache.java:292)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetDescriptor(ServiceLocatorImpl.java:1135)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:636)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:626)
      at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:172)
      at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185)
      at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
      at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:94)
      at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:63)
      at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197)
      at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:261)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:252)
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1025)
      at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:744)
  </code></pre>
  
  <pre><code>libs
  ls -l /var/lib/tomcat7/webapps/webservice/WEB-INF/lib/
  total 6648
  -rw-r--r-- 1 tomcat7 tomcat7   14787 Jun 17 17:35 aopalliance-repackaged-2.3.0-b05.jar
  -rw-r--r-- 1 tomcat7 tomcat7  159444 Jun 17 17:35 hk2-api-2.3.0-b05.jar
  -rw-r--r-- 1 tomcat7 tomcat7  162326 Jun 17 17:35 hk2-locator-2.3.0-b05.jar
  -rw-r--r-- 1 tomcat7 tomcat7   82770 Jun 17 17:35 hk2-utils-2.3.0-b05.jar
  -rw-r--r-- 1 tomcat7 tomcat7  714194 Jun 17 17:35 javassist-3.18.1-GA.jar
  -rw-r--r-- 1 tomcat7 tomcat7   26366 Jun 17 17:35 javax.annotation-api-1.2.jar
  -rw-r--r-- 1 tomcat7 tomcat7    5942 Jun 17 17:35 javax.inject-2.3.0-b05.jar
  -rw-r--r-- 1 tomcat7 tomcat7  112758 Jun 17 17:35 javax.ws.rs-api-2.0.jar
  -rw-r--r-- 1 tomcat7 tomcat7  151913 Jun 17 17:35 jersey-client-2.9.jar
  -rw-r--r-- 1 tomcat7 tomcat7  722711 Jun 18 13:41 jersey-common-2.9.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7   15719 Jun 18 23:25 jersey-container-servlet-2.9.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7   54943 Jun 18 12:16 jersey-container-servlet-core-2.9.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7  962867 Jun 17 17:35 jersey-guava-2.9.jar
  -rw-r--r-- 1 tomcat7 tomcat7   46504 Jun 18 12:07 jersey-media-json-jettison-2.9.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7  915852 Jun 18 13:37 jersey-server-2.9.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7   81899 Apr 29 11:37 jettison-1.3.5.jar
  -rw-r--r-- 1 tomcat7 tomcat7   20235 Jun 17 17:35 osgi-resource-locator-1.0.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7   53842 Jun 17 17:13 persistence-api-1.0.2.jar
  -rw-r--r-- 1 tomcat7 tomcat7   26514 Aug  1  2013 stax-api-1.0.1.jar
  -rw-r--r-- 1 tomcat7 tomcat7 2370900 Jun 18 12:15 toplink-essentials-1.0.jar
  -rw-r--r-- 1 tomcat7 tomcat7   63777 Jun 18 12:03 validation-api-1.1.0.Final.jar
  </code></pre>
  
  <p>anything wrong? appreciate for any help</p>