2012-11-10 37 views
1

HI我试图在Jetty中部署我的应用程序,并得到以下错误,该应用程序有一个模块pumpkinservice,它依赖于在休眠模块pumpkinstore上。java.lang.ClassNotFoundException:在Jetty中部署spring/hibernate应用程序时的org.hibernate.cache.access.AccessType

2012-11-10 11:10:01.138:WARN::Failed startup of context o.e.j.w.WebAppContext{/pumpkinsafari,file:/C:/Users/Gaurav/AppData/Local/Temp/jetty-0.0.0.0-8081-pumpkinservice-1.0-SNAPSHOT.war-_pumpkinsafari- 
any-/webapp/},C:/Users/Gaurav/.m2/repository/com/pumpkinsafari/service/pumpkinservice/1.0-SNAPSHOT/pumpkinservice-1.0-SNAPSHOT.war 
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/C:/Users/Gaurav/AppData/Local/Temp/jetty-0.0.0.0-8081-pumpkinservice-1.0-SNAPSH 
OT.war-_pumpkinsafari-any-/webapp/WEB-INF/lib/pumpkinstore-1.0-SNAPSHOT.jar!/com/pumpkinsafari/store/model/Customer.class]; nested exception is java.lang.NoClassDefFoundError: Lorg/hibernate/cache/acc 
ess/AccessType; 
     at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:261) 
     at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242) 
     at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84) 
     at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) 
     at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1419) 
     at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409) 
     at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) 
     at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) 
     at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
     at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromImportedResources(ConfigurationClassBeanDefinitionReader.java:303) 
     at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:131) 
     at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:118) 
     at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:294) 
     at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:203) 
     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:622) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 

。尽管当我尝试运行我的隔离测试用例时,它们工作正常。

我的聚甲醛是如下

父POM

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.pumpkinstore.pumpkinparent</groupId> 
    <artifactId>pumpkinparent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>pumpkin-parent</name> 

    <build> 

     <plugins> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
      </plugin> 

     </plugins> 

     <pluginManagement> 
      <plugins> 

       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>2.12.3</version> 
       </plugin> 

       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.5.1</version> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <compilerArgument>-proc:none</compilerArgument> 
        </configuration> 
       </plugin> 

       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.6</version> 
       </plugin> 

      </plugins> 
     </pluginManagement> 

    </build> 

    <properties> 
     <spring.version>3.1.2.RELEASE</spring.version> 
     <hibernate-core.version>4.1.7.Final</hibernate-core.version> 
     <hibernate-search.version>4.1.1.Final</hibernate-search.version> 
     <hibernate-commons.version>3.5.6-Final</hibernate-commons.version> 
     <hibernate-commons-annotation.version>3.2.0.Final</hibernate-commons-annotation.version> 
     <hibernate-jpa.version>2.0-cr-1</hibernate-jpa.version> 
     <junit.version>4.10</junit.version> 
     <mysql.version>5.1.21</mysql.version> 
     <sl4j.version>1.6.4</sl4j.version> 
     <dom4j.version>1.6.1</dom4j.version> 
     <jta.version>1.1</jta.version> 
     <ehcache.version>2.4.3</ehcache.version> 
     <antlr.version>2.7.7</antlr.version> 
     <javassist.version>3.12.1.GA</javassist.version> 
     <commons-lang3.version>3.0</commons-lang3.version> 
     <commons-logging.version>1.1.1</commons-logging.version> 
     <commons-collection.version>3.2.1</commons-collection.version> 
     <guava.version>r09</guava.version> 
     <spring-security.version>3.1.2.RELEASE</spring-security.version> 
     <servlet.version>2.5</servlet.version> 
     <jackson-mapper-asl.version>1.9.9</jackson-mapper-asl.version> 
     <jaxb-api.version>2.2.7</jaxb-api.version> 
     <cglib.version>2.2.2</cglib.version> 
    </properties> 

    <repositories> 

     <repository> 
      <id>apache-snapshot</id> 
      <name>Apache Maven Snapshot Repository</name> 
      <url>https://repository.apache.org/content/groups/snapshots/</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 

    </repositories> 

    <modules> 
     <module>PumpkinService</module> 
     <module>PumpkinStore</module> 
    </modules> 

</project> 

pumpmkinstore POM

<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>com.pumpkinsafari.store</groupId> 
    <artifactId>pumpkinstore</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>pumpkinstore</name> 
    <url>http://maven.apache.org</url> 
    <parent> 
     <groupId>com.pumpkinstore.pumpkinparent</groupId> 
     <artifactId>pumpkinparent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <dependencies> 

     <!-- JUnit testing framework --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>${junit.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.ehcache</groupId> 
      <artifactId>ehcache-core</artifactId> 
      <version>${ehcache.version}</version> 
     </dependency> 
     <!-- Spring framework --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-asm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <!-- Spring AOP dependency --> 
     <dependency> 
      <groupId>cglib</groupId> 
      <artifactId>cglib</artifactId> 
      <version>2.2</version> 
     </dependency> 

     <!-- MySQL database driver --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>${mysql.version}</version> 
     </dependency> 


     <!-- Hibernate Core framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate-core.version}</version> 
     </dependency> 
     <!-- Hibernate Annotation framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>${hibernate-commons-annotation.version}</version> 
     </dependency> 
     <!-- Hibernate Common Annotation framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>${hibernate-commons.version}</version> 
     </dependency> 
     <!-- Hibernate Search framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-search</artifactId> 
      <version>${hibernate-search.version}</version> 
     </dependency> 
     <!-- Hibernate jpa --> 
     <dependency> 
      <groupId>org.hibernate.java-persistence</groupId> 
      <artifactId>jpa-api</artifactId> 
      <version>${hibernate-jpa.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-ehcache</artifactId> 
      <version>${hibernate-core.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.transaction</groupId> 
      <artifactId>jta</artifactId> 
      <version>${jta.version}</version> 
     </dependency> 

     <!-- Hibernate library dependecy start --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${sl4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${sl4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>${commons-lang3.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>${commons-logging.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
      <version>${commons-collection.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
      <version>${dom4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>antlr</groupId> 
      <artifactId>antlr</artifactId> 
      <version>${antlr.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>${javassist.version}</version> 
     </dependency> 
     <!-- Hibernate library dependecy end --> 
     <!-- marshalling --> 
     <dependency> 
      <groupId>com.thoughtworks.xstream</groupId> 
      <artifactId>xstream</artifactId> 
      <version>1.4.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>${guava.version}</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <finalName>pumpkinstore</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.5.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

请帮助!

回答

2

您遇到不兼容的Hibernate jar问题。这可能是因为你指定了Maven传递的依赖关系,并且你手动指定了这些相互不兼容的jar版本。

你只需要依赖hibernate-core。因此,更换这一切:

<!-- Hibernate Core framework --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate-core.version}</version> 
    </dependency> 
    <!-- Hibernate Annotation framework --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-commons-annotations</artifactId> 
     <version>${hibernate-commons-annotation.version}</version> 
    </dependency> 
    <!-- Hibernate Common Annotation framework --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-annotations</artifactId> 
     <version>${hibernate-commons.version}</version> 
    </dependency> 
    <!-- Hibernate jpa --> 
    <dependency> 
     <groupId>org.hibernate.java-persistence</groupId> 
     <artifactId>jpa-api</artifactId> 
     <version>${hibernate-jpa.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.transaction</groupId> 
     <artifactId>jta</artifactId> 
     <version>${jta.version}</version> 
    </dependency> 

有:

<!-- Hibernate Core framework --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate-core.version}</version> 
    </dependency> 
+0

感谢亚历克斯雅我已经想通了这似乎Hibernate的注解不需要休眠4去除依赖条件后一切工作正常。 –

+0

很酷。将此标记为正确答案:) –

+0

确定完成:)标记 –