0

私たちはJava(Java EE)アプリケーションに取り組んでおり、MSMQを読み取ってリモートの.NETアプリケーションに送信するためにXMLファイルを生成します。XMLファイルは次のようにJDomによって生成されます。

// add elements...

Document doc = new Document(root);      
String XmlData = new XMLOutputter(Format.getPrettyFormat().setOmitEncoding(true)).outputString(doc);

try {
        SendFile( XmlData, "title" , "path");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (MessageQueueException e) {
        e.printStackTrace();
    }

次に、この関数を使用し、MsmqJavaライブラリを使用してファイルを送信します。

private void SendFile(String data, String title, String outputPath) throws UnsupportedEncodingException, MessageQueueException{
    String qname="name_of_the_queue";
    String fullname= "server_path" + qname;
    String body = data;
    String label = title;
    String correlationId= "L:none";

    try {
        Queue queue= new Queue(fullname);
        Message msg= new Message(body, label, correlationId);
        queue.send(msg);
            } catch (MessageQueueException ex1) {
           System.out.println("Put failure: " + ex1.toString());
       }
}

彼らはファイルを正しく受信しますが、「VT_BSTR」が必要なときにbodyTypeが「VT_EMPTY」に設定されているとのことで、これを修正する方法についての手がかりが見つかりません。その仕事をしている別のlib、またはこれに対する回避策を知っている場合は、問題なく変更できます。

ありがとう !

4

1 に答える 1

1

使用しているライブラリのドキュメントを見ると、そのライブラリを使用することはできません。

Jmsmqqueueは、必要な機能も提供していません。

Sunにもアダプタがあったようです:https ://wikis.oracle.com/display/JavaCAPS/Sun+Adapter+for+MSMQ

于 2012-07-27T09:32:43.957 に答える