0

我正在尝试连接 gwt-spring-hibernate。问题是下一个:当我尝试创建名称为 SessionFactory 的 bean 时,我收到此错误:

2013 年 6 月 4 日上午 11:13:00 org.apache.catalina.core.StandardContext listenerStart SEVERE: Excepción enviando eventto inicializado de contexto a instancia de escuchador de clase org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory .BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中创建名称为“sessionFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.VerifyError:类 org.hibernate.type.WrappedMaterializedBlobType 覆盖最终方法 getReturnedClass.()Ljava/lang/Class;在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory 的 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)。ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java: 334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:603) 在 java.lang.Thread.run(Thread.java:722) 引起:java.lang.VerifyError: class org.hibernate.type.WrappedMaterializedBlobType 覆盖最终方法 getReturnedClass.()Ljava/lang/Class; 在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:791) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:

2013 年 6 月 4 日上午 11:13:00 org.apache.catalina.core.StandardContext startInternal SEVERE:错误 listenerStart

我一直在寻找解决此错误的方法,但没有办法。每个人都说我的项目中有两次库,但我什么也没找到。

Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">

<!-- POM file generated with GWT webAppCreator -->
<modelVersion>4.0.0</modelVersion>
<groupId>com.pcf</groupId>
<artifactId>lfy</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>GWT Maven Archetype</name>


<properties>
<!-- Convenience property to set the GWT version -->

  <spring.version>3.2.0.RELEASE</spring.version>
</properties>

<dependencies>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</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-tx</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-web</artifactId>
    <version>${spring.version}</version>
</dependency>


<dependency>
  <groupId>commons-dbcp</groupId>
  <artifactId>commons-dbcp</artifactId>
  <version>1.2.2</version>
</dependency>

<dependency>
    <groupId>javax.persistence</groupId>
    <artifactId>persistence-api</artifactId>
    <version>1.0</version>
</dependency>

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>4.1.9.Final</version>
</dependency>




<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.7</version>
  <scope>test</scope>
</dependency>

</dependencies>

<build>
<!-- Generate compiled stuff in the folder used for developing mode -->
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

<plugins>

  <!-- GWT Maven Plugin -->
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
      <execution>
        <goals>
          <goal>compile</goal>
          <goal>test</goal>
          <goal>i18n</goal>
          <goal>generateAsync</goal>
        </goals>
      </execution>
    </executions>
    <!-- Plugin configuration. There are many available options, see 
      gwt-maven-plugin documentation at codehaus.org -->
    <configuration>
      <runTarget>principal.html</runTarget>
      <hostedWebapp>${webappDirectory}</hostedWebapp>
      <i18nMessagesBundle>com.pcf.lfy.client.Messages</i18nMessagesBundle>
    </configuration>
  </plugin>

  <!-- Copy static web files before executing gwt:run -->
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>

    <executions>
      <execution>
        <phase>compile</phase>
        <goals>
          <goal>exploded</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <webappDirectory>${webappDirectory}</webappDirectory>
    </configuration>

  </plugin>


  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
    </configuration>
  </plugin>
 </plugins>
 </build>

</project>

我的 applicationContext.xml 是下一个:

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"          
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" 
xmlns:task="http://www.springframework.org/schema/task"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context- 3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

<context:component-scan base-package="com.pfc.lfy" />

<!-- <tx:annotation-driven />

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="MyPersistenceUnit" />
 </bean>

 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  <property name="entityManagerFactory" ref="entityManagerFactory" />
 </bean>
-->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/pfc;create=true"></property>
    <property name="username" value="xxx" />
    <property name="password" value="xxx" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="packagesToScan" value="com.pcf.lfy.shared.dto"></property>

    <property name="hibernateProperties">
        <props>
            <prop key="dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>

</bean>

 <bean id="transactionManager"
    class="org.springframework.orm.hibernate4.HibernateTransactionManager" 
    p:sessionFactory-ref="sessionFactory">
 </bean>

</beans>

就这些。我没有看到任何图书馆两次,我快疯了。

非常感谢!

4

2 回答 2

0

在这里你可以看到 mi web.xml

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <!-- provide hooks for the web application so as to load the Spring context upon startup -->
   <listener>
       <listener-class>
           org.springframework.web.context.ContextLoaderListener
       </listener-class>
   </listener>

  <!-- Servlets -->

  <servlet>
      <servlet-name>springGwtRemoteServiceServlet</servlet-name>
      <servlet-class>org.spring4gwt.server.SpringGwtRemoteServiceServlet</servlet-class>
  </servlet>




   <!--<servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>com.pcf.lfy.server.GreetingServiceImpl</servlet-class>
  </servlet>-->

  <servlet-mapping>
     <servlet-name>springGwtRemoteServiceServlet</servlet-name>
     <url-pattern>/principal/springGwtServices/*</url-pattern>
  </servlet-mapping>

   <!--<servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/principal/greet</url-pattern>
  </servlet-mapping>-->

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>principal.html</welcome-file>
  </welcome-file-list>

</web-app>

我纠正了一件事:

<context:component-scan base-package="com.pfc.lfy" />

经过

<context:component-scan base-package="com.pcf.lfy" />

但没办法……

感谢你的回答!

于 2013-06-05T08:40:30.940 回答
0

一切看起来都很好(除了我在你的 POM 中没有找到任何 GWT 依赖项,但我从未使用过它,所以我无法证明)。

如果您使用 Eclipse,则打开 pom.xml(带有 exclipse)并切换到“层次结构”选项卡,检查是否没有第二个休眠依赖项。

于 2013-06-05T08:54:44.437 回答