论坛首页 入门讨论版 Spring

Spring+Compass+Hibernate集成的问题?

浏览 592 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2007-11-20
Spring2.0
Compass1.2
Hibernate3
数据库为sqlserver2000
在不加Compass的时候,运行正常,在配置Compass的时候出现如下错误.

[@APPNAME@] INFO [Thread-1] [/shangjia].log(645) | Initializing Spring root WebApplicationContext
[@APPNAME@] INFO [Thread-1] CompassConfigurationFactory.newConfiguration(53) | Using configuration [org.compass.annotations.config.CompassAnnotationsConfiguration]
[@APPNAME@] INFO [Thread-1] CompassConfiguration.addInputStream(432) | Mapping InputStream [class path resource [shangjia.cmd.xml]]
[@APPNAME@] INFO [Thread-1] CompassConfiguration.addInputStream(432) | Mapping InputStream [class path resource [shangjia.cpm.xml]]
[@APPNAME@] INFO [Thread-1] ScheduledLuceneSearchEngineIndexManager.start(61) | Starting scheduled index manager with period [60000ms] daemon [true]
[@APPNAME@] INFO [Thread-1] ScheduledLuceneSearchEngineOptimizer.start(61) | Starting scheduled optimizer [class org.compass.core.impl.DefaultCompass$TransactionalSearchEngineOptimizer] with period [10000ms] daemon [true]
[@APPNAME@] INFO [Thread-1] DefaultCompass.close(190) | Closing Compass [compass]
[@APPNAME@] INFO [Thread-1] ScheduledLuceneSearchEngineOptimizer.stop(75) | Stopping scheduled optimizer [class org.compass.core.impl.DefaultCompass$TransactionalSearchEngineOptimizer]
[@APPNAME@] INFO [Thread-1] ScheduledLuceneSearchEngineIndexManager.stop(75) | Stopping scheduled index manager
[@APPNAME@] INFO [Thread-1] DefaultCompass.close(200) | Closed Compass [compass]
[@APPNAME@] ERROR [Thread-1] ContextLoader.initWebApplicationContext(203) | Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compassGps' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'gpsDevices' threw exception; nested exception is java.lang.IllegalArgumentException: Must specify a name for a gps device
Caused by:
org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are:
PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property 'gpsDevices' threw exception; nested exception is java.lang.IllegalArgumentException: Must specify a name for a gps device
Caused by:
java.lang.IllegalArgumentException: Must specify a name for a gps device
at org.compass.gps.impl.AbstractCompassGps.checkDeviceValidity(AbstractCompassGps.java:66)
at org.compass.gps.impl.AbstractCompassGps.setGpsDevices(AbstractCompassGps.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:821)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:645)


Spring 的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-autowire="autodetect">
    <!-- JNDI DataSource for J2EE environments -->

  <!-- Choose the dialect that matches your "dataSource" definition -->
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
      <value>net.sourceforge.jtds.jdbc.Driver</value>
    </property>
    <property name="url">
      <value>jdbc:jtds:sqlserver://127.0.0.1:1433/shangjia</value>
    </property>
    <property name="username">
      <value>sa</value>
    </property>
    <property name="password">
      <value></value>
    </property>
  </bean>
   
  <!-- Hibernate SessionFactory -->
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource"><ref local="dataSource"/></property>
    <property name="mappingResources">
      <list>
        <value>com/hengshui/shangjia/model/QyType.hbm.xml</value>                                         
      </list>
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
        <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.jdbc.fetch_size">50</prop>
        <prop key="hibernate.jdbc.batch_size">25</prop>
      </props>
    </property>
  </bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<!-- COMPASS START -->
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<property name="resourceLocations">
  <list>
  <value>classpath:shangjia.cmd.xml</value> <!-- 这里是compass所需要的两个关于数据项的配置文件 -->
  <value>classpath:shangjia.cpm.xml</value>
  </list>
</property>

<property name="compassSettings">
  <props>
  <prop key="compass.engine.connection">file://d:/target</prop>
  <prop key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop>
  </props>
</property>

<property name="transactionManager">
  <ref local="transactionManager" />
</property>
</bean>
  <bean id="hibernateGpsDevice" class="org.compass.spring.device.hibernate.SpringHibernate3GpsDevice">
     <property name="name">
        <value>hibernateDevice</value>
     </property>
     <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop">
  <property name="compass" ref="compass"/>
  <property name="gpsDevices">
      <list>
          <ref local="hibernateGpsDevice"/>
      </list>
  </property>
</bean>
<!-- COMPASS END -->
   
    <!-- add your spring beans here -->
   
省略。。。。。。
</beans>
   
最后更新时间:2008-01-05
我也出现这个问题,请问楼主解决这个问题了没有?给我点提示
   
0 请登录后投票
论坛首页 入门讨论版 Spring

跳转论坛:
JavaEye推荐