用Java编写XML SOAP消息

用Java编写XML SOAP消息,java,xml,soap,envelope,envelope-schema,Java,Xml,Soap,Envelope,Envelope Schema,我有下面的方法,它接受xml,并对内容进行一些数据馈送。 我还应该返回一条SOAP消息,大致如下: <ow-e:Envelope revision='2.0' xmlns:ow-e='http://www.url.com/test-envelope'> <ow-e:Header> <ow-e:Properties> <ow-e:SentAt>2004-12-14T13:54:36</ow-e:SentAt&

我有下面的方法,它接受
xml
,并对内容进行一些数据馈送。 我还应该返回一条SOAP消息,大致如下:

<ow-e:Envelope revision='2.0' xmlns:ow-e='http://www.url.com/test-envelope'>
   <ow-e:Header>
      <ow-e:Properties>
         <ow-e:SentAt>2004-12-14T13:54:36</ow-e:SentAt>
         <ow-e:Topic>SOME_STRING</ow-e:Topic>
      </ow-e:Properties>
   </ow-e:Header>
</ow-e:Envelope>

2004-12-14T13:54:36
几根绳子
所以我现在做的是:

String some_string = "qwe";
String response = "";

response = "<ow-e:Envelope revision='2.0' xmlns:ow-e='http://www.url.com/test-envelope'><ow-e:Header><ow-e:Properties><ow-e:SentAt>2004-12-14T13:54:36</ow-e:SentAt><ow-e:Topic>" + some_string + "</ow-e:Topic></ow-e:Properties></ow-e:Header></ow-e:Envelope>";

return response;
String一些\u String=“qwe”;
字符串响应=”;
response=“2004-12-14T13:54:36”+一些字符串+”;
返回响应;
这太可怕了。你知道我怎样才能让它更容易忍受吗?目前,使用框架不是一种选择


这是我第一次处理SOAP消息/响应,感觉就像地狱从休息中降临。我可能需要创建某种层次结构来正确填充值,但我不确定如何在没有任何框架的情况下仅使用
Java

您提到的使用框架不是一个选项,但您的平台中可能会提供更轻量级的功能:

  • 。JAXB允许您使用注释将Java类映射到XML表示。这比手工或通过连接或解析字符串进行封送和解封送要好得多。通过适当的结构化和注释POJO,JAXB可以为您处理事情。您甚至可以通过
    -WSDL
    选项欺骗并使用您的WSDL文件创建带注释的类(尽管是实验性的)
  • 。坦率地说,SAAJ就像SOAP消息的特定生成器和解析器。它将为您处理结构和名称空间。说到这里

。。。您展示的示例并不是真正有效的SOAP消息。SOAP是一种协议。您需要正确格式化它并使用正确的名称空间,否则您只返回一些看起来像SOAP的XML消息,但实际上不是。

谢谢,我现在就开始。你认为这两个选项中哪一个更简单,学习曲线更少?我不认为自己又在做SOAP了,所以我可能宁愿选择一个学习/实现时间更短的。谢谢你提醒我关于无效SOAP的问题,我也会确保详细介绍一下。如果你使用Jackson库使用JSON,那么JAXB看起来会更熟悉。您只需要获得正确的对象到XML的映射。另一方面,SAAJ有一个更丑陋的API,但它不太容易出错,因为它只处理SOAP消息。JAXB可能更简单。感谢您提供的详细信息,我们将使用JAXB。我接受了答案