2012-03-31 6 views
0

pom.xmlKommentierte Klassen können nicht von Spring

<dependencies> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.4</version> 
     </dependency> 

     <!-- JUnit testing framework --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 

     <!-- Spring framework --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring</artifactId> 
      <version>2.5.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-hibernate3</artifactId> 
      <version>2.0.8</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>5.1.9</version> 
     </dependency> 

     <!-- Hibernate framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.1.0.Final</version> 
     </dependency> 


     <!-- Hibernate library dependecy start --> 
     <dependency> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
      <version>3.2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>antlr</groupId> 
      <artifactId>antlr</artifactId> 
      <version>2.7.7</version> 
     </dependency> 
     <!-- Hibernate library dependecy end --> 
    </dependencies> 

spring.xml

<!-- Auto scan the annotated components --> 
<context:component-scan base-package="com.chicago.home" /> 

<bean id="test" class="org.chicago.home.Test"> 
    <property name="hibernateTemplate" ref="hibernateTemplate" /> 
</bean> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/mydb" /> 
    <property name="username" value="user" /> 
    <property name="password" value="passwd" /> 
</bean> 

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="annotatedClasses"> 
     <list> 
      <value>com.chicago.home.Event</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="show_sql">true</prop> 
     </props> 
    </property> 
    <property name="configurationClass"> 
     <value>org.hibernate.cfg.AnnotationConfiguration</value> 
    </property> 
</bean> 

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

Klasse Ereignis zu finden:

package org.chicago.home; 
import java.util.*; 
import javax.persistence.*; 
import org.hibernate.annotations.GenericGenerator; 

@Entity 
@Table(name = "EVENTS") 
public class Event { 
    private Long id; 

    private String title; 
    private Date date; 

    public Event() { 
     // this form used by Hibernate 
    } 

    public Event(String title, Date date) { 
     // for application use, to create new events 
     this.title = title; 
     this.date = date; 
    } 

    @Id 
    @GeneratedValue(generator="increment_generator") 
    @GenericGenerator(name="increment_generator", strategy = "increment") 
    public Long getId() { 
     return id; 
    } 

    private void setId(Long id) { 
     this.id = id; 
    } 

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "EVENT_DATE") 
    public Date getDate() { 
     return date; 
    } 

    public void setDate(Date date) { 
     this.date = date; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 
} 

Ausnahme:

Caused by: java.lang.IllegalArgumentException: Cannot find class [com.chicago.home.Event] 
    at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:233) 
    at org.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEditor.java:63) 
    at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:382) 
    at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:358) 
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:173) 
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:124) 
    at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:393) 
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:186) 
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138) 
    at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386) 
    ... 44 more 
Caused by: java.lang.ClassNotFoundException: com.chicago.home.Event 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 

Antwort

1

Ihre Klassen sind im Paket org.chicago.home, während Sie Komponente-Scan com.chicago.home

0

Da in der sessionFactory Bohne, erklären Sie die Eigenschaft annotatedClasses einen Wert von com.chicago.home.Event .Allerdings hat, ist diese Klasse nicht vorhanden und daher Beschwerde Frühling kann es nicht gefunden.

Eigentlich ist Ihr Event unter dem org.chicago.home Paket, aber nicht unter dem com.chicago.home Paket.

Verwandte Themen