2017-03-23 5 views
0

タイトルから言うと、クラスからXMLファイルを生成し、Apache Camelを使用してそのファイルをいくつかのパスにコピーします。オブジェクトからXMLファイルを生成し、Apache Camelでファイルに保存する

私は一時ファイルを作成してこのファイルをCamelでコピーすることができますが、私はそのファイルをCamelに渡して、私が望む場所にマーシャルしてコピーできるようにしています。

  • XML文字列にクラスを変換し、キャメルにそれを養う:私は2つのアプローチが試み

    @XmlRootElement 
    @XmlType(propOrder = {"name"}) 
    public class Person 
    { 
        private String name; 
        public Person() 
        { 
    
        } 
    
        public Person(String name) 
        { 
         this.name = name; 
        } 
    
        @XmlAttribute 
        public String getName() 
        { 
         return this.name; 
        } 
    } 
    

    私のクラスのすべてのコードの最初には、次のようになります。

  • オブジェクトをラクダに直接送ります。

    Person person = new Person("test name"); 
    String personString; 
    StringWriter sw = new StringWriter(); 
    
    JAXBContext personContext = JAXBContext.newInstance(Person.class); 
    Marshaller personMarshaller = personContext.createMarshaller(); 
    personMarshaller.marshal(person, sw); 
    personString = sw.toString(); 
    
    from(personString) 
    .routeId("TestRoute") 
    .to("file:/apps/test/test.xml"); 
    

    をだから私の次のテストは、それが持っていることを見てラクダに直接オブジェクトを養うことでした。以下のコードは動作しませんでしたので、

は、残念ながら、私はキャメルで任意の文字列エンドポイントを見つけることができませんでしたクラスのエンドポイント:

Failed to create route TestRoute: Route(TestRoute)[[From[class:com.test.camel... because of Failed to resolve endpoint: class://[email protected] due to: [email protected]: org.apache.camel.FailedToCreateRouteException: Failed to create route TestRoute: Route(TestRoute)[[From[class:com.test.camel... because of Failed to resolve endpoint: class://[email protected] due to: [email protected] 

Person person = new Person("test name"); 

from("class:" + person) 
.routeId("TestRoute") 
.marshal().jaxb(Person.class.getPackage().getName().toString()) 
.to("file:/apps/test/test.xml"); 

このコードは、次の例外で失敗しました

これを行うにはどうすればいいですか?そのエラーはどういう意味ですか?どんな助けもありがとう。

答えて

関連する問題