MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

user1759457

MirthはActiveMQJMSトピックからJavaオブジェクトを受信して​​います。ソースコネクタのインバウンドデータタイプをMirthチャネルの区切りテキストに設定しましたコネクタタイプはJMSリーダーです。preprocessorフェーズでは、このJavaオブジェクトをXMLにマーシャリングしたいと思います。このようなロガーを配置しました。

logger.info("incoming data "+message);

そしてそれはOrderDetails @ 240aaf81を印刷しています

現在、JavaオブジェクトをXMLにマーシャリングするためのカスタムJavaクラスを呼び出していますが、この受信メッセージはMirthによってStringに変換されます。プリプロセッサスクリプトのコードは次のようになります。

// Modify the message variable below to pre process data
logger.info("incoming data "+message);
var object = new Packages.coms.controller.JAXBMarshalling();
object.marshallJavaObjectToXml(message);
return message;

着信メッセージをメソッドに渡すときに、メソッドがメソッドパラメータとしてカスタムJavaオブジェクトを予期しているため、メソッドが存在しないというエラーが表示されますが、文字列として送信されます。メソッドは次のようになります。

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

オブジェクトが渡されるクラスは次のようになります。

 @XmlRootElement
    public class OrderDetails implements Serializable{

        private static final long serialVersionUID = -4617153110762983450L;
        private Long mrn;
        private Long orderNo;
        private Long patientId;
        private Long orderId;**strong text**
        private Long encounterId;
    }

これら2つのクラスでjarファイルを作成し、Mirthのcustom-libフォルダーに配置しました。Mirthのpreprocessorスクリプトで実際のJavaオブジェクトを取得するにはどうすればよいですか。Mirthバージョン2.2.1.5861を使用しています

シャミール

このような結果は、[概要]タブの添付スクリプトを使用して実現できます。そこで、生の形式でメッセージを処理します。そこでオブジェクトを抽出してグローバルチャネルマップに保存できます。これにより、他の2つのマップとは異なり、オブジェクトを渡すこともできます。プリプロセッサスクリプトは、生のメッセージも処理します。これら2つの違いは、メッセージが添付ファイルハンドラーに到達したときにデータベースに保存されないが、その後に保存されることです。

さらに読むために、「非公式のMirthConnect開発者ガイドをお勧めします(免責事項:私はこの本の著者です。)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

分類Dev

AndroidでXMLファイルをJavaオブジェクトにアンマーシャリングしますか?

分類Dev

ピクルスファイル用に、必要なオブジェクトを直接ロードして、シリーズ内の他のオブジェクトをジャンプすることはできますか?

分類Dev

JAXBで異なる値を持つオブジェクトの複数のセットをどのようにマーシャリングしますか?

分類Dev

JAXBアンマーシャリング-子要素の属性をJavaオブジェクトにマップします

分類Dev

Dartでマップオブジェクトのリストをリファクタリングしますか?

分類Dev

jaxbがこのXMLドキュメントをJavaオブジェクトにアンマーシャリングしないのはなぜですか?

分類Dev

プロパティのサブセットでオブジェクトを比較するジャスミンマッチャーはありますか

分類Dev

JavaでさまざまなタイプのマーシャリングされていないXMLオブジェクトを処理する適切な方法

分類Dev

Spark-タスクはシリアライズ可能ではありません:クラス/オブジェクトの外部を呼び出す複雑なマップクロージャをどのように操作しますか?

分類Dev

ブロックせずにサブプロセスオブジェクトをポーリングする

分類Dev

Java 8ストリームは、マップをフィルタリングした後に元のオブジェクトを取得します

分類Dev

不明なオブジェクトをインターフェイスのジェネリックインターフェイスにキャストします(最初は明示的なジェネリックタイプのジェネリックコレクションタイプのタイプから)

分類Dev

マルチプロセッシングを使用して、オブジェクトのリストにメソッドを並列に適用します

分類Dev

VisualStudioでプロジェクト全体またはソリューションのパラメーターを使用してプリプロセッサーマクロを定義するためのオプション

分類Dev

マングースを使用して集約クエリプロジェクトでオブジェクトの配列をカスタマイズする方法

分類Dev

ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

分類Dev

intent.putExtras(String key、Message object)throwsプロセス間でParcelable以外のオブジェクトをマーシャリングできません

分類Dev

マルチプロセッシングを使用してデータオブジェクト内のアイテムに関数を適用することでパフォーマンスを高速化できますか?

分類Dev

ストアドプロシージャの結果からジェネリック子をジェネリック親にマップします

分類Dev

JSONシリアル化オブジェクトはマルチプロセッシング呼び出しでエラーを出します-TypeError:XXXオブジェクトは呼び出し可能エラーではありません

分類Dev

javascriptはキーでフィルタリングし、キーの値を別のオブジェクトからの新しいオブジェクトキーにマップします

分類Dev

Ignite Spring Data @Queryアノテーションは、オブジェクト全体ではなくフィールドのサブセットを取得するためのプロジェクションの概念をサポートしていますか?

分類Dev

配列プロパティのサブセットのみを含むオブジェクトでJavaScript配列をフィルタリングします

分類Dev

JAXB-ヘッダーなしでJavaオブジェクトをマーシャリングする方法

分類Dev

pexpectとマルチプロセッシングの使用中にエラーが発生しましたか?エラー「TypError: '_ io.TextIOWrapper'オブジェクトをシリアル化できません」

分類Dev

Javaはjsonを抽象オブジェクトのオープンクローズド原則の実装に逆シリアル化します

分類Dev

リアクティブスプリングリポジトリで保存する前に、オブジェクトの複雑なフィールドをテキストフィールド(JSONとしてシリアル化)にマッピングする

分類Dev

サブスクリプションごとにスキャンオペレーターで新しいシードオブジェクトを作成します

Related 関連記事

  1. 1

    MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

  2. 2

    AndroidでXMLファイルをJavaオブジェクトにアンマーシャリングしますか?

  3. 3

    ピクルスファイル用に、必要なオブジェクトを直接ロードして、シリーズ内の他のオブジェクトをジャンプすることはできますか?

  4. 4

    JAXBで異なる値を持つオブジェクトの複数のセットをどのようにマーシャリングしますか?

  5. 5

    JAXBアンマーシャリング-子要素の属性をJavaオブジェクトにマップします

  6. 6

    Dartでマップオブジェクトのリストをリファクタリングしますか?

  7. 7

    jaxbがこのXMLドキュメントをJavaオブジェクトにアンマーシャリングしないのはなぜですか?

  8. 8

    プロパティのサブセットでオブジェクトを比較するジャスミンマッチャーはありますか

  9. 9

    JavaでさまざまなタイプのマーシャリングされていないXMLオブジェクトを処理する適切な方法

  10. 10

    Spark-タスクはシリアライズ可能ではありません:クラス/オブジェクトの外部を呼び出す複雑なマップクロージャをどのように操作しますか?

  11. 11

    ブロックせずにサブプロセスオブジェクトをポーリングする

  12. 12

    Java 8ストリームは、マップをフィルタリングした後に元のオブジェクトを取得します

  13. 13

    不明なオブジェクトをインターフェイスのジェネリックインターフェイスにキャストします(最初は明示的なジェネリックタイプのジェネリックコレクションタイプのタイプから)

  14. 14

    マルチプロセッシングを使用して、オブジェクトのリストにメソッドを並列に適用します

  15. 15

    VisualStudioでプロジェクト全体またはソリューションのパラメーターを使用してプリプロセッサーマクロを定義するためのオプション

  16. 16

    マングースを使用して集約クエリプロジェクトでオブジェクトの配列をカスタマイズする方法

  17. 17

    ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

  18. 18

    intent.putExtras(String key、Message object)throwsプロセス間でParcelable以外のオブジェクトをマーシャリングできません

  19. 19

    マルチプロセッシングを使用してデータオブジェクト内のアイテムに関数を適用することでパフォーマンスを高速化できますか?

  20. 20

    ストアドプロシージャの結果からジェネリック子をジェネリック親にマップします

  21. 21

    JSONシリアル化オブジェクトはマルチプロセッシング呼び出しでエラーを出します-TypeError:XXXオブジェクトは呼び出し可能エラーではありません

  22. 22

    javascriptはキーでフィルタリングし、キーの値を別のオブジェクトからの新しいオブジェクトキーにマップします

  23. 23

    Ignite Spring Data @Queryアノテーションは、オブジェクト全体ではなくフィールドのサブセットを取得するためのプロジェクションの概念をサポートしていますか?

  24. 24

    配列プロパティのサブセットのみを含むオブジェクトでJavaScript配列をフィルタリングします

  25. 25

    JAXB-ヘッダーなしでJavaオブジェクトをマーシャリングする方法

  26. 26

    pexpectとマルチプロセッシングの使用中にエラーが発生しましたか?エラー「TypError: '_ io.TextIOWrapper'オブジェクトをシリアル化できません」

  27. 27

    Javaはjsonを抽象オブジェクトのオープンクローズド原則の実装に逆シリアル化します

  28. 28

    リアクティブスプリングリポジトリで保存する前に、オブジェクトの複雑なフィールドをテキストフィールド(JSONとしてシリアル化)にマッピングする

  29. 29

    サブスクリプションごとにスキャンオペレーターで新しいシードオブジェクトを作成します

ホットタグ

アーカイブ