java java-ee jboss jboss7.x

java - JBoss 7.1.1 no se inicia debido a un "grupo" inesperado de elementos



java-ee jboss7.x (2)

Aparece el siguiente mensaje de error cuando agrego el elemento de grupo:

Causado por: org.jboss.as.connector.util.ParserException: IJ010061: Elemento inesperado: pool

Si elimino el elemento del grupo, funciona. He comprobado el XSD en la carpeta de documentos y estoy bastante seguro de que es así? ¿Por qué falla?

<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"> <resource-adapters> <resource-adapter> <archive> jackrabbit-jca-2.6.2.rar </archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <connection-definition class-name="org.apache.jackrabbit.jca.JCAManagedConnectionFactory" jndi-name="java:/jca/JcrRepository" enabled="true" use-java-context="true" pool-name="jackrabbit-jca-2_6_2_rar-Pool" use-ccm="true"> <pool> <min-pool-size>1</min-pool-size> <max-pool-size>4</max-pool-size> </pool> </connection-definition> </connection-definitions> </resource-adapter> </resource-adapters> </subsystem>


Buena pregunta y tienes toda la razón. Esto es válido de acuerdo con el esquema y supongo que este es un error de JBoss 7.11. Puede presentar un error sobre esto. Creo que puedes continuar usando una versión anterior de JBoss y este problema no estará allí.


No es un error, es una característica;)

...

Vamos a profundizar un poco en la implementación responsable:

Cuando miras la fuente del analizador responsable, puedes ver lo siguiente

case TRANSACTION_SUPPORT: { if (txSupportMatched) { throw new ParserException(bundle.unexpectedElement(TRANSACTIONSUPPORT.getXmlName())); } String value = rawElementText(reader); TRANSACTIONSUPPORT.parseAndSetParameter(value, operation, reader); isXa = value != null && TransactionSupportEnum.valueOf(value) == TransactionSupportEnum.XATransaction; txSupportMatched = true; break; }

Ese es el análisis sintáctico de la etiqueta de adaptador de recursos. Si escribe la palabra clave XATransaction, el (por defecto es falso) isXa-var cambia a verdadero.

Ahora el analizador de la etiqueta-definición-conexión espera un xa-pool-tag

case XA_POOL: { if (! isXa) throw new ParserException(bundle.unexpectedElement(CommonConnDef.Tag.XA_POOL.name())); if (poolDefined) throw new ParserException(bundle.multiplePools()); parseXaPool(reader, connectionDefinitionNode); poolDefined = true; break; } case POOL: { if (isXa) throw new ParserException(bundle.unexpectedElement(CommonConnDef.Tag.POOL.name())); if (poolDefined) throw new ParserException(bundle.multiplePools()); parsePool(reader, connectionDefinitionNode); poolDefined = true; break; }

Dependiendo de la definición de XATransaction, ironjacamar-impl crea diferentes implementaciones de grupo. Y el xa-poolType del esquema permite más configuración que el pool-tip estándar.

Pero creo que debería documentarse en alguna parte, al menos en schema.xsd