2014-05-01 85 views
1

我試圖使用駱駝路由配置驗證對XSD的傳入請求順序(xml格式)。但是我不斷收到下面的錯誤。任何人都可以幫忙,我的代碼在下面。在駝峯驗證對XSD的訂單

@Override 
public void configure() { 

//Other code 

onException(ValidationException.class) 
      .to("{{jms.queue.invalidRequestQueue}}"); 

     from("{{jms.queue.fulfilmentRequest}}") 
     .routeId(ROUTE_ID) 
      .to("validation:src/main/resources/xml/OrderCanonical.xsd", "{{jms.queue.fulfilmentRequest}}") 
     .transacted(PROPAGATION_REQUIRED) 
      .setHeader(ORDER_ID, xpath(XPATH_FOR_ORDERLINE).namespaces(nm).stringResult()) 
      .beanRef("indiciaService", "getIndicias") 
      .choice() 
       .when(header(BOLPMessageHeaders.STATUS).isEqualTo(BOLPFulfilmentStatuses.FAILED)) 
        .log(LoggingLevel.DEBUG, "Indicia call failed. Skipping call to Adobe.") 
        .to("{{jms.queue.fulfilmentResponse}}") 
       .otherwise() 
        .beanRef("adobePostageService", "generatePdf") 
        .setHeader(BOLPMessageHeaders.STATUS, simple(BOLPFulfilmentStatuses.FULFILLED)) 
        .convertBodyTo(String.class) 
        .log(LoggingLevel.DEBUG, PRINT_HEADERS) 
        .log(LoggingLevel.DEBUG, PRINT_BODY) 
        .to("{{jms.queue.fulfilmentResponse}}"); 
} 

這是錯誤:

Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route BOLPFulfilmentRoute at: >>> To[validator:src/main/resources/xml/OrderCanonical.xsd] <<< in route: Route(BOLPFulfilmentRoute)[[From[{{jms.queue.fulfilmentReque... because of Failed to resolve endpoint: validator://src/main/resources/xml/OrderCanonical.xsd due to: Cannot find resource: src/main/resources/xml/OrderCanonical.xsd in classpath for URI: src/main/resources/xml/OrderCanonical.xsd 

回答

4

我想這應該是validator代替validation,對不對?

根據錯誤消息,找不到XSD文件。請嘗試以下文件路徑:

from("{{jms.queue.fulfilmentRequest}}") 
    .routeId(ROUTE_ID) 
    .to("validator:xml/OrderCanonical.xsd") 
+0

這工作很好的noob錯誤:)非常感謝您的幫助! – dnzdlklc

+1

@dStudios也許你可以接受這個答案,這樣很明顯,proplem已經解決了。 –