Estou com problemas na integracao do Spring + JPA no tomcat. Como implementacao da JPA estou usando o Hibernate, motivado por nao precisar iniciar a JVM com parametros (javaagent, informacao conseguida na propria documentacao do Spring http://static.springframework.org/spring/docs/2.0.x/reference/orm.html#orm-jpa).
usando um applicationContext.xml
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/bancoDeDados" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL" />
<property name="showSql" value="true" />
</bean>
</property>
</bean>
Acontece o erro abaixo na criacao do entityManagerFactory (quando coloco apenas o Datasource funciona
Trace do erro (as ultimas 2 linhas do erro se repentem umas 80 vezes, e causa um overflow do erro, pelo menos acho que seja isso
)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.StackOverflowError
Caused by:
java.lang.StackOverflowError
at java.lang.Character.toLowerCase(Character.java:4208)
at java.lang.Character.toLowerCase(Character.java:4175)
at java.lang.String.toLowerCase(String.java:2409)
at java.lang.String.toLowerCase(String.java:2497)
at org.apache.xerces.util.URI.setScheme(URI.java:908)
at org.apache.xerces.util.URI.initializeScheme(URI.java:576)
at org.apache.xerces.util.URI.initialize(URI.java:400)
at org.apache.xerces.util.URI.<init>(URI.java:211)
at org.apache.xerces.util.URI.<init>(URI.java:195)
at org.apache.xerces.impl.XMLEntityManager.expandSystemId(XMLEntityManager.java:1140)
at org.apache.xerces.impl.XMLEntityManager.resolveEntity(XMLEntityManager.java:581)
at org.apache.xerces.impl.xs.XMLSchemaLoader.xsdToXMLInputSource(XMLSchemaLoader.java:625)
at org.apache.xerces.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(XMLSchemaLoader.java:580)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:489)
at org.apache.xerces.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(XMLSchemaLoader.java:588)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:489)
at org.apache.xerces.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(XMLSchemaLoader.java:588)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:489)
at org.apache.xerces.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(XMLSchemaLoader.java:588)
Seguindo a documentacao do spring, coloquei a propriedade abaixo no entityManagerFactory do arquivo applicationContext.xml
Colocando a opcao
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>
</property>
Adicionei o arquivo spring-tomcat-weaver-2.0.5.jar no tomcat/server/lib
e no server.xml inclui no contexto
<Context path="/exemplo-0.0.1">
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
</Context>
Depois de ter feito isso, só dá erro 404 nas paginas 
Alguem já passou por isso ou tem alguma dica pra me ajudar?
Alguem poderia me dizer como fez para funcionar isso?
Abracos
Fernando