2013-07-28 8 views
5

ottengo il seguente messaggio di errore quando aggiungo l'elemento piscina:JBoss 7.1.1 non viene avviato a causa di imprevisti elemento "pool"

causati da: org.jboss.as.connector.util. ParserException: IJ010061: elemento imprevisto: piscina

Se rimuovo l'elemento piscina funziona. Ho controllato l'XSD nella cartella dei documenti e sono abbastanza sicuro che sia giusto? Perché fallisce?

<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> 
+0

L'XML è sicuramente valida contro [questo schema] (http://www.jboss.org/schema/jbossas/jboss- as-resource-adapters_1_0.xsd). Fai un doppio controllo per assicurarti di non avere problemi di versione/dipendenza. – DannyMo

+0

L'utilizzo dell'elemento xa-pool funziona invece. Sembra che ci sia qualche convalida dopo lo schema? – LuckyLuke

risposta

3

Non è un bug, è una caratteristica;)

...

Andiamo un po 'in profondità nella realizzazione responsabile:

Quando si guarda nella fonte del responsabile parser è possibile vedere il seguente

 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; 
        } 

Questo è l'analisi del tag di risorsa-adattatore. Se scrivi la parola chiave XATransaction, il (di default false) isXa-var passa a true.

Ora il parser del collegamento definizione-tag si aspetta un XA-piscina-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; 
        } 

seconda della XATransaction definizione le ironjacamar-impl creano diversi pool-implementazioni. E il xa-poolType dello schema consente una maggiore configurazione rispetto a standard-pooltype.

Ma penso che dovrebbe essere documentato da qualche parte, almeno nel schema.xsd

+0

Grazie Jan =) – LuckyLuke

0

Buona domanda e hai perfettamente ragione. Questo è un valido secondo lo schema e immagino che questo sia un bug di JBoss 7.11. Puoi scrivere un bug su questo. Penso che tu possa continuare a utilizzare una versione precedente di JBoss e questo problema non ci sarà.

+0

L'utilizzo dell'elemento xa-pool funziona invece. Sembra che ci sia qualche convalida dopo lo schema? – LuckyLuke

+0

si utilizza xs-pool quando si utilizza l'origine dati XA Suppongo che sia necessaria l'origine dati XA per scopi di clustering in base a ciò che ho sentito. Ad ogni modo, se sta funzionando per te, vai avanti. Ma il mio suggerimento è di usare una versione precedente di JBoss e continuare è meglio piuttosto che andare con cose complesse. –

Problemi correlati