2013-07-28 27 views
5

tôi nhận được thông báo lỗi sau khi tôi thêm các yếu tố hồ bơi:JBoss 7.1.1 không khởi động vì bất ngờ tố "hồ bơi"

Nguyên nhân: org.jboss.as.connector.util. ParserException: IJ010061: Yếu tố không mong muốn: pool

Nếu tôi xóa phần tử nhóm hoạt động. Tôi đã kiểm tra XSD trong thư mục tài liệu và tôi khá chắc chắn điều này là đúng? Tại sao nó thất bại?

<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

Các xml chắc chắn có giá trị chống lại [schema này] (http://www.jboss.org/schema/jbossas/jboss- as-resource-adapters_1_0.xsd). Kiểm tra kỹ để đảm bảo bạn không gặp phải bất kỳ vấn đề về phiên bản/phụ thuộc nào. – DannyMo

+0

Sử dụng phần tử cộng đồng thay vì hoạt động. Có vẻ như nó là một số xác nhận sau khi lược đồ? – LuckyLuke

Trả lời

3

Nó không phải là một lỗi, đó là một tính năng;)

...

Hãy chỉ đi một chút sâu vào việc thực hiện trách nhiệm:

Khi bạn nhìn vào nguồn gốc của sự chịu trách nhiệm trình phân tích cú pháp bạn có thể thấy như sau

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

Đó là phân tích cú pháp của thẻ-adapter-tài nguyên. Nếu bạn viết từ khóa XATransaction, (theo mặc định là false) isXa-var chuyển thành true.

Bây giờ phân tích cú pháp của kết nối nét-tag hy vọng một 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; 
        } 

Tùy thuộc vào XATransaction nét các ironjacamar-impl tạo khác nhau hồ bơi hiện thực. Và xa-poolType của lược đồ cho phép cấu hình nhiều hơn sau đó là pooltype chuẩn.

Nhưng tôi nghĩ rằng nên được ghi chép ở đâu đó, ít nhất là trong schema.xsd

+0

Cảm ơn bạn Jan =) – LuckyLuke

0

Câu hỏi hay và bạn hoàn toàn đúng. Đây là một hợp lệ theo lược đồ và tôi đoán đây là một lỗi của JBoss 7.11.Bạn có thể gửi một lỗi về điều này. Tôi nghĩ bạn có thể tiếp tục sử dụng phiên bản trước của JBoss và vấn đề này sẽ không có ở đó.

+0

Sử dụng phần tử xa-pool thay vì hoạt động. Có vẻ như nó là một số xác nhận sau khi lược đồ? – LuckyLuke

+0

bạn sử dụng xs-pool khi sử dụng nguồn dữ liệu XA tôi đoán và bạn cần nguồn dữ liệu XA cho các mục đích phân cụm theo những gì tôi đã nghe. Dù sao nếu nó đang làm việc cho bạn thì hãy tiếp tục với nó. Nhưng đề nghị của tôi là sử dụng một phiên bản trước của JBoss và tiếp tục tốt hơn là đi với những thứ phức tạp. –

Các vấn đề liên quan