0

I have my web services in Jersey 2.13 with Tomcat 7. But when I try to run in server I have this error:

    org.apache.catalina.core.ApplicationContext log
GRAVE: StandardWrapper.Throwable
java.lang.NoClassDefFoundError: javax/inject/Singleton
    at org.glassfish.jersey.model.ContractProvider$Builder.<clinit>(ContractProvider.java:89)
    at org.glassfish.jersey.model.ContractProvider.builder(ContractProvider.java:71)
    at org.glassfish.jersey.model.internal.ComponentBag.modelFor(ComponentBag.java:476)
    at org.glassfish.jersey.model.internal.ComponentBag.access$100(ComponentBag.java:89)
    at org.glassfish.jersey.model.internal.ComponentBag$5.call(ComponentBag.java:408)
    at org.glassfish.jersey.model.internal.ComponentBag$5.call(ComponentBag.java:398)
    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:228)
    at org.glassfish.jersey.model.internal.ComponentBag.registerModel(ComponentBag.java:398)
    at org.glassfish.jersey.model.internal.ComponentBag.register(ComponentBag.java:309)
    at org.glassfish.jersey.model.internal.CommonConfig.register(CommonConfig.java:463)
    at org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:448)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:309)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5229)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5516)

I forget something?

Rajat
  • 1,043
  • 12
  • 23
DevOps85
  • 6,473
  • 6
  • 23
  • 42
  • Try here: [How to Solve java.lang.NoClassDefFoundError][1] [1]: http://stackoverflow.com/questions/17973970/how-to-solve-java-lang-noclassdeffounderror – Tal.Bary Oct 08 '14 at 11:04

1 Answers1

1

I don't think Tomcat 7 includes CDI "out of the box", so you need to bundle a CDI implementation in your WAR file if you want to use it. JBoss Weld is the reference implementation for CDI, you it's probably simplest to use that one. If you're using Maven, stick something like this in the dependencies section:

<dependency>
  <groupId>org.jboss.weld.servlet</groupId>
  <artifactId>weld-servlet</artifactId>
  <version>1.1.10.Final</version>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.0.1</version>
  <scope>provided</scope>
</dependency>

See this article for details.

Alvin Thompson
  • 5,388
  • 3
  • 26
  • 39