私たちは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、またはこれに対する回避策を知っている場合は、問題なく変更できます。
ありがとう !