我正在使用SpringWS和JAXB注释类来生成XML作为Web服务客户端的有效负载。我创建了package-info.java来生成前缀:
@javax.xml.bind.annotation.XmlSchema(xmlns =
{
@javax.xml.bind.annotation.XmlNs(prefix = "pay",
namespaceURI = "http://www.paymentexpress.com"),
@javax.xml.bind.annotation.XmlNs(prefix = "xsd",
namespaceURI = "http://www.w3.org/2001/XMLSchema")
},
namespace = "http://www.paymentexpress.com",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED)
package com.mycompany;
这会产生:
<pay:GetTransactionId
xmlns:pay="http://www.paymentexpress.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<pay:tranDetail>
...
Web服务客户端测试失败。问题是用soapUI发送这个XML我得到了与测试中相同的错误,当我删除xmlns:pay声明时,它在soapUI中工作。
有没有办法生成前缀,而不是在生成的XML中使用JAXB包含xmlns声明?