mvc form example spring xml-namespaces

form - no se puede localizar el error del manejador de nombres de Spring



spring form (1)

Es muy probable que lo que sucedió es que los archivos que proporcionan metadatos a Spring sobre la ubicación de los manejadores de espacio de nombres personalizados (spring.schema, spring.handlers) terminaron sobrescribiéndose unos a otros cuando creó el tarro grande (uber).

Para aclarar esto un poco más, si está usando el espacio de nombres de contexto, por ejemplo - context:property-placeholder-configurer , la información sobre cómo analizar este espacio de nombres está usando un archivo spring.handlers en spring-context.jar!:/META-INF/spring.handlers archivo spring-context.jar!:/META-INF/spring.handlers , un archivo similar está presente en otros archivos jar de Spring para la compatibilidad con otros espacios de nombres personalizados. Ahora, cuando cree el archivo Uber jar, ya que la ubicación del archivo del controlador es exactamente la misma, un archivo spring.handler terminará sobrescribiendo los demás y verá el error que está viendo. Aquí se describen algunos arreglos potenciales, donde se sugieren algunas formas alternativas de crear el archivo ejecutable:

¿Cómo crear un tarro ejecutable basado en muelles con maven?

He estado teniendo este error durante casi una semana y estoy casi listo para ceder. He usado Maven2 para hacer el archivo de BIG JAR. Cuando ejecuto el archivo jar usando:

java -jar someJar.jar

Me sale este error:

ERROR: [27/55/13 10:55] Launcher: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context] Offending resource: class path resource [JavaProjectApplicationContext.xml]

JavaProjectApplicationContext.xml es el siguiente:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"> <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"><value>deployment.properties</value></property> </bean> <bean id="LexEditorDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"><value>${hibernate.jdbc_driver}</value></property> <property name="username"><value>${hibernate.username}</value></property> <property name="password"><value>${hibernate.password}</value></property> <property name="url"><value>${hibernate.url}</value></property> <property name="defaultAutoCommit"><value>${hibernate.default_auto_commit}</value> </property> <property name="maxActive"><value>20</value></property> <property name="maxIdle"><value>3</value></property> <property name="testOnBorrow"><value>true</value></property> <property name="testOnReturn"><value>true</value></property> <property name="testWhileIdle"><value>true</value></property> </bean> <context:component-scan base-package="com.k_int.bank.plugin"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan> <bean id="ThesSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"><ref local="LexEditorDataSource"/></property> <property name="configurationClass"> <value>org.hibernate.cfg.AnnotationConfiguration</value></property> <property name="packagesToScan"> <list> <value>com.bank.kernel.datamodel</value> </list> </property> <property name="annotatedClasses"> <list> <!-- identity service --> <value>com.svc.identity.datamodel.PartyHDO</value> <value>com.svc.identity.datamodel.RegisteredUserHDO</value> <value>com.svc.identity.datamodel.AuthenticationDetailsHDO</value> <value>com.svc.identity.datamodel.GrantHDO</value> <value>com.svc.identity.datamodel.PermissionHDO</value> <value>com.svc.identity.datamodel.RegisteredOrganisationHDO</value> <value>com.svc.identity.datamodel.RoleHDO</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.show_sql">false</prop> </props> </property> </bean> <bean id="IndexService" class="com.k_int.bank.index.solr_impl.SOLRIndexService" init-method="init"> <property name="indexDirectory"><value>${com.bank.index_dir}</value></property> <property name="indexPropertyFile"><value>solr.properties</value></property> </bean>



Cosas que he probado hasta ahora.

construí el proyecto de 3 maneras diferentes (2 IDE y línea de comando) eliminaron cualquier conflicto de dependencia de tarro (tuve spring-2.5.6.jar y spring-context-3.0.5.RELEASE.jar, así que eliminé spring-2.5.6 .tarro)

Se cambió http://www.springframework.org/schema/beans/spring-beans-2.5.xsd a http://www.springframework.org/schema/beans/spring-beans-3.0.xsd .

Ninguno de estos cambios ha eliminado el error.

En el archivo del coche existe en

someJar.jar/org/springframework/context/config/ContextNameSpaceHandler.class

¿Alguien tiene alguna idea en absoluto?