2013-08-02 19 views
0

我將java對象傳入preprocessor階段,我想將這個java對象編組爲XML,因爲我編寫了自定義的java類用於編組,並且我將此java類作爲jar並部署在自定義lib文件夾中歡笑。在日誌中顯示java對象(@something hash-code)時傳入的消息正在快樂而快樂地將此對象轉換爲String。但我的要求是讓對象保持原樣,或者是否有任何方法將字符串表示的對象轉換爲我在preprocessor階段傳遞給歡樂的實際自定義java對象。這是我爲編組寫的java類。Java對象在Mirth的預處理器中轉換爲String?

public class JAXBMarshalling { 


    public void marshallJavaObjectToXml(OrderDetails orderDetails) { 
     JAXBContext jaxbContext; 
     try { 
      File file = new File(
        "C:\\Program Files (x86)\\Mirth Connect\\conf\\xml\\xmlrepresentation.xml"); 
      jaxbContext = JAXBContext.newInstance(OrderDetails.class); 
      Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); 
      // output pretty printed 
      jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
      jaxbMarshaller.marshal(orderDetails, file); 
      jaxbMarshaller.marshal(orderDetails, System.out); 
     } catch (JAXBException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

回答

0

不知道我很理解你的問題。基本上有兩種可能的情況 - 當您嘗試在通道內或通道之間傳遞對象時;並且當您嘗試將對象作爲消息的一部分傳遞到外部目標時。

在第一種情況下,您必須使用全局通道映射,因爲其他兩個映射會持久保存到數據庫,因此Mirth Connect會將它們轉換爲字符串。在第二種情況下,嘗試使用<![CDATA [...]] >來通知解析器要忽略哪一部分。

作爲後續行動,我會建議Unofficial Mirth Connect Developer’s Guide這兩個場景都提到。 (免責聲明:我是本書的作者。)

相關問題