将XML从Java发送到MSMQ - bodyType从VT_EMPTY到VT_BSTR

时间:2012-07-27 09:18:39

标签: java xml msmq

我们在Java(Java EE)应用程序上工作,我们生成XML文件,以便将它们发送到远程.NET应用程序,并且MSMQ读取它们。 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 library发送文件:

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

他们正确地收到了文件,但他们告诉我们bodyType设置为“VT_EMPTY”而他们想要“VT_BSTR”,我们还没有找到关于如何解决这个问题的线索。如果您知道另一个执行该工作的库,或者解决此问题,我们可以毫无问题地进行更改。

谢谢!

1 个答案:

答案 0 :(得分:1)

查看您使用的库的文档,无法使用该库。

Jmsmqqueue也不提供您需要的功能。

似乎太阳也有一个适配器:https://wikis.oracle.com/display/JavaCAPS/Sun+Adapter+for+MSMQ