2017-10-18 1 views
1

내 프로그램은 XML 파일 형식을 JSON 파일 형식으로 변환해야합니다. 임 정렬 화 명령을 사용하려고하지만 오류 얻을 : 스레드에서XML to Json with Camel

예외를 "주" org.apache.camel.FailedToCreateRouteException : >>> 원수 [조직 :에 경로를 route1를 만들지 못했습니다. [email protected]] 경로에서 < < < : 노선 (route1) [[[파일 : 자원 /받은 편지함] -> [원수 [org.ap ... 때문에 데이터 형식의 'xmljson'을 (를) 만들 수 없습니다. 데이터 포맷이 유효한지 확인하고 관련 낙 성분에 의해 야기 된 클래스 경로

에 존재한다 : java.lang.IllegalArgumentException가 : 데이터 포맷 'xmljson' 를 생성 할 수 없습니다. 데이터 형식이 유효하고

자바 코드가

package route; 

import org.apache.camel.CamelContext; 
import org.apache.camel.builder.RouteBuilder; 
import org.apache.camel.impl.DefaultCamelContext; 
import org.apache.camel.model.dataformat.XmlJsonDataFormat; 
import org.apache.camel.spi.DataFormat; 
import org.apache.log4j.BasicConfigurator; 

public class CopyToJsonRoute { 

    public static void main(String args[]) throws Exception { 
     // Log 4j 
     BasicConfigurator.configure(); 

     // create CamelContext 
     CamelContext context = new DefaultCamelContext(); 

     // add our route to the CamelContext 
     context.addRoutes(new RouteBuilder() { 
      public void configure() { 
       // http://www.yr.no/place/Norway/Oslo/Oslo/Oslo/forecast.xml 

       XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat(); 
       xmlJsonFormat.setForceTopLevelObject(true); 
       from("file:resource/inbox") 
         .marshal(xmlJsonFormat) 
         .to("file:src/main/resources/data/output?autoCreate=true"); 



      } 
     }); 

     // start the route and let it do its work 
     context.start(); 
     Thread.sleep(10000); 

     // stop the CamelContext 
     context.stop(); 
    } 
} 

폼은 당신은 추가 할 필요가

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.yourdomain.subdomain</groupId> 
    <artifactId>copy-to-json</artifactId> 
    <version>1.0-SNAPSHOT</version> 


    <dependencies> 

     <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-core --> 
     <dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-core</artifactId> 
      <version>2.20.0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-jackson --> 
     <dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-jackson</artifactId> 
      <version>2.20.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.8.0-alpha2</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-jms --> 
     <dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-jms</artifactId> 
      <version>2.20.0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/xom/xom --> 
     <dependency> 
      <groupId>xom</groupId> 
      <artifactId>xom</artifactId> 
      <version>1.2.5</version> 
     </dependency> 



    </dependencies> 
</project> 

답변

2

파일 관련 낙타 구성 요소가 클래스 경로에 존재하는지 확인 camel-xmljson을 Maven pom 파일에 종속으로 설정

<dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-xmljson</artifactId> 
     <version>2.20.0</version> 
    </dependency>