tutorial manager example and java xml eclipse spring

java - manager - spring-beans.xsd no define "local". ¿Por qué?



spring security order (5)

Como se indica aquí: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/

El atributo local en el elemento ref ya no se admite en los beans xsd 4.0, ya que ya no proporciona valor sobre una referencia de bean regular. Simplemente cambie las referencias locales de referencia existentes para ref bean cuando actualice al esquema 4.0.

Como sabrá, Spring 3.x no es totalmente compatible con Java 8, por lo que puede usar Java 7 sin soporte y obsoleto con Spring 3.x, o actualizar Spring y JDK. Recomiendo encarecidamente la última

Casi todos los proyectos de primavera usan spring-beans.xsd (se refiere a él para ser más precisos). Sin embargo, si observa el archivo, http://www.springframework.org/schema/beans/spring-beans.xsd , verá que es la versión 3.2 y no tiene una definición para el atributo "local ".

Lo que es aún más interesante, es que http://www.springframework.org/schema/beans/spring-beans-3.2.xsd realmente define "local".

Además, dado que el archivo se extrae del archivo (org / springframework / beans / factory / xml / spring-beans-3.2.xsd) debido a spring.schema, no creo que ningún proyecto tenga problemas de compilación o de tiempo de ejecución.

El validador xml de Eclipse, por otro lado, creo que solo usa el enlace de Internet y muestra un error xml, más específicamente:

"cvc-complex-type.3.2.2: el atributo ''local'' no puede aparecer en el elemento ''ref''"

¿Esto es un error?

Edición: según solicitud, este es mi encabezado de primavera:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:oxm="http://www.springframework.org/schema/oxm" xmlns:batch="http://www.springframework.org/schema/batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd">

Edición 2: aquí es donde estoy usando local

<bean id="bar" class="org.springframework.batch.item.support.CompositeItemWriter"> <property name="delegates"> <list> <ref local="foo" /> </list> </property> </bean> <bean id="foo" class="java.lang.String" />


Debe intentar utilizar <ref bean="someBean"/> lugar.


El http://www.springframework.org/schema/beans/spring-beans.xsd realidad apunta al 4.0 XSD, que NO tiene local . Además, hay errores en eclipse con la integración de Spring que podría ser el problema. INT-1353

Además, existe / was / una opción de configuración para que Eclipse especifique la carga de XSD desde Classpath, pero no estoy 100% seguro de que esto funcione o que ya exista. Hay una captura de pantalla de eso aquí: https://.com/a/2896051/1958771

~ sheenobu -> curl -s http://www.springframework.org/schema/beans/spring-beans.xsd | md5 0483a5565138fe9f79c5fbe38c7c5969 ~ sheenobu -> curl -s http://www.springframework.org/schema/beans/spring-beans-3.2.xsd | md5 1562baeab9550e2149e9608dbb3bbadd ~ sheenobu -> curl -s http://www.springframework.org/schema/beans/spring-beans-4.0.xsd | md5 0483a5565138fe9f79c5fbe38c7c5969



Spring (y Eclipse) utilizará cualquier xsd que haya declarado en schemaLocation independientemente de la que schemaLocation en el archivo jar . Esta es en realidad la validación realizada por el analizador XML que Spring utiliza debajo de todo.

Si desea utilizar el atributo local de ref , deberá declarar una schemaLocation que apunte a un esquema que tenga el atributo local . Tenga en cuenta que si lo hace, el contexto generado deberá ser analizable por el BeanDefinitionParser que existe en su jar Spring.