JAva SOAP:尝试以对名称空间不正确的方式创建或更改对象

时间:2018-06-13 15:59:00

标签: java xml spring-boot soap

我见过这样的问题,但到目前为止他们没有帮助。

我目前在设置SOAP主体中元素的前缀时遇到问题。 我正在尝试构建的请求如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sen="http://company.org/sendmailaTTACH">
   <soapenv:Header/>
   <soapenv:Body>
      <sen:SendMail>
         <sen:plainbody>?</sen:plainbody>
      </sen:SendMail>
   </soapenv:Body>
</soapenv:Envelope>

能够通过跟随this answer将其构建到SendMail对象的位置,但是当它到达添加前缀的部分时:<sen:plainbody>即添加{{1}前缀sen我收到错误:

  

org.w3c.dom.DOMException:NAMESPACE_ERR:尝试创建   或者以不正确的方式更改对象   命名空间。

plainbody对象如下所示:

SendMail

我猜也许是因为普通人和其他领域都有String?

有什么方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

想出了一个解决方案:

可以通过使用@XmlElement注释类属性并指定名称空间来解决该问题

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String from;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String displayname;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String to;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String cc;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String bcc;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String htmlbody;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String plainbody;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String subject;

@XmlElement(namespace = "http://company.org/sendmailaTTACH")
protected String imageurl;