Problem solved.  Solution is described here:
http://jroller.com/page/gbilodeau/?anchor=of_running_jpa_unit_tests1.


Guillaume Bilodeau wrote:
> 
> I am experiencing a similar problem when using entity beans in the form of
> annotated classes: the tests run fine under Eclipse but fail under Maven
> with the same "Unknown entity" message.  A quick look at the Hibernate
> logs shows that the entities are recognized under Eclipse but not under
> Maven.  Similarly, the problem seems to stem from the separation of main
> classes and test classes in two distinct directories, which somehow
> impacts Hibernate's class location algorithm.
> 
> Is there any way this can be avoided or, even better, solved?
> 
> Thanks,
> GB
> 
> 
> 
> Jurgen Lust wrote:
>> 
>> Hi,
>> 
>> I'm having a problem run the unit tests for a hibernate and spring-based 
>> application with the surefire plugin.
>> I'm using the xdoclet plugin to generate the hibernate mapping files, 
>> and a spring LocalSessionFactoryBean to load
>> the mappings, like so:
>> 
>> The surefire plugin:
>> 
>>       <plugin>
>>         <artifactId>maven-surefire-plugin</artifactId>
>>         <version>2.0</version> <!-- tried version 2.1.2 as well, to no 
>> avail -->
>>         <configuration>
>>           <testFailureIgnore>true</testFailureIgnore>
>>           <forkMode>once</forkMode>
>>           <includes>
>>             <include>**/*TestSuite.java</include>
>>           </includes>
>>           <reportFormat>xml</reportFormat>
>>         </configuration>
>>       </plugin>
>> 
>> 
>> The xdoclet plugin:
>>       <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>xdoclet-maven-plugin</artifactId>
>>         <version>1.0-alpha-2</version>
>>         <executions>
>>           <execution>
>>             <phase>generate-sources</phase>
>>             <goals>
>>               <goal>xdoclet</goal>
>>             </goals>
>>             <configuration>
>>               <tasks>
>>                 <hibernatedoclet 
>> excludedtags="@version,@author,@see,@todo" 
>> destDir="${project.build.outputDirectory}">
>>                   <fileset dir="${basedir}/src/main/java">
>>                     <include name="**/model/*.java"></include>
>>                   </fileset>
>>                   <hibernate destinationFile="{0}.hbm.xml" version="3.0" 
>> prefixWithPackageStructure="true"></hibernate>
>>                 </hibernatedoclet>
>>               </tasks>
>>             </configuration>
>>           </execution>
>>         </executions>
>>       </plugin>
>> 
>> The resulting mapping files are in target/classes.
>> 
>> The spring.xml looks like this:
>> 
>>     <bean id="sessionFactory"
>>        
>> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
>>         <property name="dataSource">
>>             <ref bean="dataSource" />
>>         </property>
>>         <property name="hibernateProperties">
>>             <props>
>>                 <prop key="hibernate.dialect">
>>                     ${hibernate.dialect}
>>                 </prop>
>>                 <prop key="hibernate.connection.autocommit">
>>                     ${hibernate.connection.autocommit}
>>                 </prop>
>>                 <prop key="hibernate.hbm2ddl.auto">
>>                     ${hibernate.hbm2ddl.auto}
>>                 </prop>
>>                 <prop key="hibernate.show_sql">
>>                     ${hibernate.show_sql}
>>                 </prop>
>>             </props>
>>         </property>
>>         <property name="mappingDirectoryLocations">
>>             <list>
>>                 <value>classpath:</value>
>>             </list>
>>         </property>
>>     </bean>
>> 
>> So the LocalSessionFactoryBean searches the classpath for hbm.xml files.
>> 
>> Now my unit tests create a ClassPathXmlApplicationContext in the setUp() 
>> method, using the above spring.xml file.
>> But when the unit tests try to access one of the persistent beans, I get 
>> the error "org.hibernate.MappingException: Unknown entity", which means
>> the hibernate mapping files could not be found in the classpath.
>> Looking at the classpath for the maven surefire plugin, I noticed that 
>> both the target/classes and target/testClasses directories are in it 
>> twice, which is strange but I doubt that this could be the cause...
>> After copying the generated hbm.xml files to src/test/resources, the 
>> tests did not throw that Exception anymore.
>> I have also tried running the tests from an ant buildfile, and that 
>> works as well.
>> 
>> Does anyone have an idea what could be going wrong here?
>> 
>> Kind regards,
>> 
>> Jurgen
>> 
>> -- 
>> Among flowers, the cherry blossom.
>> Among men, me.
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/surefire-and-hibernate%2Bspring-tf1154206.html#a6320539
Sent from the Maven - Users forum at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to