2014-11-10 6 views
5

Sto provando a configurare Hibernate 4 con Spring 4, e ho imbattersi in alcuni problemi di configurazione. In particolare, nel mio file servlet-context.xml, ho seguito una guida e ha aggiunto le seguenti blocchi di codice al file:cvc-complex-type.2.4.c: Il carattere jolly corrispondente è rigoroso, ma non è possibile trovare alcuna dichiarazione per l'elemento 'bean' - Problemi di configurazione Spring

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="configLocation"> 
     <value>/WEB-INF/hibernate.cfg.xml</value> 
    </property> 
    <property name="hibernateProperties"> 
    <props> 
     <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
     <prop key="hibernate.show_sql">true</prop> 
    </props> 
    </property> 
</bean> 

<tx:annotation-driven /> 
<bean id="transactionManager" 
class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
<property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

Entrambi questi visualizzare il seguente errore: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'bean'

Il session bean fabbrica visualizza anche questo errore: Cannot locate BeanDefintionParser for element [bean]

Ecco tutta la mia file `servlet-context.xml'(escluse le due blocchi di codice per brevità, anche se si prega di notare che in realtà sono nel file):

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"> 

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --> 

<!-- Enables the Spring MVC @Controller programming model --> 
<annotation-driven /> 

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> 
<resources mapping="/resources/**" location="/resources/" /> 

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> 
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <!-- <beans:property name="prefix" value="/WEB-INF/views/" />--> 
    <!-- <beans:property name="suffix" value=".jsp" /> --> 
</beans:bean> 

<context:component-scan base-package="pear.pear.pear" /> 

</beans:beans> 

Come posso risolvere questi problemi?

+0

Non si tratta solo di aggiungere il prefisso namespace: 'beans: bean'? –

+0

Era ... come sciocco! Grazie. – Tylerlee12

risposta

6

si imposta lo spazio dei nomi di default per il file XML per mvc, quindi avrete bisogno di prefisso vostro elemento (beans:bean) oppure modificare lo spazio dei nomi di default per beans (l'approccio al solito).