taglibs sec hasrole form docs java xml spring

java - sec - spring form docs



Manera correcta de utilizar el espacio de nombres p y util en la configuraciĆ³n XML de Spring (2)

Mi objetivo es volver a escribir la sección sessionFactory de mi archivo xml en el mismo formato que todas las demás áreas de mi archivo xml. Necesito usar el espacio de nombres p para hacer que las cosas se vean consistentes y ordenadas. El problema que encontré es usar el espacio de nombres util / p.

Gracias por dejarme editar esta publicación. Este es mi archivo xml completo:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- DataSource Beans --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:url="jdbc:hsqldb:file:database.dat;shutdown=true" p:driverClassName="org.hsqldb.jdbcDriver" p:username="sa" p:password="" /> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mappingResources"> <list> <value>/com/bookstore/domain/Book.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <!-- Template Beans --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource" /> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" p:sessionFactory-ref="sessionFactory" /> <!-- DAO Beans --> <bean id="bookDao" class="com.bookstore.data.BookDao" p:hibernateTemplate-ref="hibernateTemplate" /> <bean id="accountDao" class="com.bookstore.data.AccountDao" init-method="createTable" p:jdbcTemplate-ref="jdbcTemplate" /> <!-- Service Beans --> <bean id="bookService" class="com.bookstore.services.BookService" p:bookDao-ref="bookDao" /> <bean id="purchasingService" class="com.bookstore.services.PurchasingService" p:bookServiceInterface-ref="bookService" p:accountServiceInterface-ref="accountService" ></bean> <bean id="accountService" class="com.bookstore.services.AccountService" p:accountDao-ref="accountDao" /> <!-- AOP Advice Beans --> <bean id="loggingAdvice" class="com.bookstore.advice.LoggingAdvice" /> <bean id="performanceTimingAdvice" class="com.bookstore.advice.PerformanceTimingAdvice" /> <!-- Auto Proxy --> <aop:aspectj-autoproxy /> </beans>

Esto es lo que tengo hasta ahora: usar una combinación de util: list y util: properties:

<util:list id="mappingResourcesList"> <value>/com/bookstore/domain/Book.hbm.xml</value> </util:list> <util:properties id="hibernatePropertiesProps"> <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </util:properties> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" p:dataSource-ref="dataSource" p:mappingResources-ref="mappingResourcesList" p:hibernateProperties-ref="hibernatePropertiesProps" />

El mensaje de error que recibo actualmente pertenece a la lista util: list, pero también desconfío de mis propiedades util:

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 22 in XML document from class path resource [application.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element ''util:list''.

¿Qué parte de mi util: list y util: properties debo cambiar para que esto funcione?


¿A qué espacios de nombres XML se asignan p y util ? Estos deben ser declarados con xmlns:p="..." y xmlns:util="..." algún lugar dentro del elemento XML o un elemento padre del cual se están utilizando.

(El error que está recibiendo no es específico de SAX, pero es genérico para el análisis de XML).

Por ejemplo, para usar util , su XML debería comenzar con lo siguiente:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

Más detalles están disponibles en http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/xsd-config.html#xsd-config-body-schemas-util .

Para p , también querrías agregar:

xmlns:p="http://www.springframework.org/schema/p"

Tenga en cuenta que nada requiere que use p: y util: Estos simplemente están siendo utilizados por la convención. Puede volver a escribir su XML para usar a: y b: todas partes, siempre que estén definidos para asignarse a los mismos espacios de nombres XML. (Es por eso que necesitan ser definidos.)