2016-04-26 7 views
1

Ich habe ein Upgrade auf Tomcat 8 durchgeführt und habe diese Ausnahme bei der Bereitstellung meiner Anwendung unter Linux erhalten.Fehler beim Erstellen von Bean mit dem Namen 'sessionFactory' in der ServletContext-Ressource [/WEB-INF/hibernateContext.xml]

In Windows 7 wird die Anwendung jedoch erfolgreich bereitgestellt.

Funktionieren die Abhängigkeiten im Winterschlaf unter verschiedenen Betriebssystemen?

In meinem pom.xml:

<properties> 
    <versionPackageName>com.translations.globallink.connect.core</versionPackageName> 
    <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss.SSSZ</maven.build.timestamp.format>   
    <spring.security.groupId>org.springframework.security</spring.security.groupId> 
    <spring.security.version>3.1.3.RELEASE</spring.security.version> 
    <spring.version>3.1.4.RELEASE</spring.version> 
    <hibernate.version>3.3.0.GA</hibernate.version> 
    <releaseControl.version>2.0.43</releaseControl.version> 
</properties> 

und Abhängigkeiten:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>${hibernate.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-annotations</artifactId> 
    <version>${hibernate.version}</version> 
    <exclusions> 
     <exclusion> 
      <groupId>net.sf.ehcache</groupId> 
      <artifactId>ehcache</artifactId> 
     </exclusion>     
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-commons-annotations</artifactId> 
    <version>${hibernate.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-c3p0</artifactId> 
    <version>${hibernate.version}</version> 
</dependency> 
<dependency> 
    <groupId>c3p0</groupId> 
    <artifactId>c3p0</artifactId> 
    <version>0.9.1.2</version> 
</dependency> 

Innerhalb des Ziel/Krieg sah ich diese Bibliotheken nach Gebäude:

Hibernate-3.2.1 .ga.jar

Hibernate-Anmerkungen-3.3.0.GA.ja r

hibernate-c3p0-3.3.0.GA.jar

Ruhezustand-core-3.3.0.GA.jar

hibernate- Validator-5.1.0.Final.jar

hibernate-ehcache-4.1.12.Final.jar

hibernate-commons-Annotationen-3.3.0.GA.jar

Sind nicht diese Abhängigkeiten kompatibel in Linux?

Hinzufügen von Stack-Trace:

ERROR org.springframework.web.context.ContextLoader - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/hibernateContext.xml]: Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:589) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:472) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:388) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:293) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4729) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1101) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1786) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IncompatibleClassChangeError: Implementing class 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2476) 
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:857) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1282) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1164) 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
    at java.lang.Class.getConstructor0(Class.java:3075) 
    at java.lang.Class.getDeclaredConstructor(Class.java:2178) 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104) 
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newConfiguration(LocalSessionFactoryBean.java:818) 
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:549) 
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
    ... 25 more 
+0

Was ist die vollständige Stack-Trace? Können Sie neben dem Fehler auch die Ursache des Fehlers angeben? – aribeiro

+1

Niemals, wiederhole Nie, mixe Versionen eines Frameworks, egal welches Framework. Sie mischen Hibernate 3.2, 3.3 und 4.1 Gläser und erwarten, dass es funktioniert. Das wird nie geschehen. Der Hibernate-Validator ist nicht einmal mit Hibernate 3 kompatibel, so dass auch das nicht funktioniert. Bereinigen Sie Ihre Abhängigkeiten und verwenden Sie kompatible Versionen. –

+0

Würden Sie mir empfehlen, kompatible Versionen zu verwenden. Ich habe Eigenschaft hinzugefügt wie 3.3.0.GA und mit $ {hibernate.version} Ich habe keine Ahnung über die Ursache des Mismatch gesehen. –

Antwort

0

Run mvn dependency:tree -Dverbose -Dincludes=commons-collections

Sie haben einen Abhängigkeitskonflikt verursacht.

+0

Ohne Konflikte kam die Arbeit. Vielen Dank. Verwendete Eclipse-Abhängigkeitshierarchie zum Lösen der Konflikte. –

0

können Sie zeigen Ihre web.xml auch? Ich denke, es ist das Problem mit Ihrer Konfigurationsdatei, d.h. hibernate.cfg.xml ist nicht an der richtigen/erforderlich. Ich denke, das Problem mit Ihrem Code ist, dass es Gläser verschiedener Versionen von Hibernate verwendet. Die Verwendung von Gläsern derselben Version von hib renate wird dringend empfohlen und Ihr Problem kann gelöst werden.

+0

In Windows 7 OS wird meine Anwendung ohne Ausnahme bereitgestellt. In CentOS (Linux), Anwendung wird auf Tomcat 7 bereitgestellt. Die obige Ausnahme bekomme ich nur, wenn ich versuche, auf Tomcat 8 in Linux zu implementieren. meine Datei web.xml und Hibernate.cfg.XML-Datei sind innerhalb /WEB-INF –

+0

Wenn Sie Ihren Konfigurationspfad in web.xml nicht eingegeben haben. dann probiere das für eine minute aus: halte deine hibernate.cfg.xml-datei parallel zu den paketen dh im/src-ordner und versuche jdk-1.8.0 mit tomcat 8 zu verwenden. –

+1

und noch eine sache benutze die jars derselben version von überwintern. –