我用xjc和wsimport工具生成了我的類。我有一個包含我需要的所有屬性和元素的對象。我有一個SignatureType對象,它必須包含我將發送的數據的符號。簽署肥皂請求時出錯。完整性丟失
我的根對象是這樣的:
@XmlRootElement(name = "MensajePesadoFirmadoTipo")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MensajePesadoFirmadoTipo", propOrder = {
"signature"
})
public class MensajePesadoFirmadoTipo
extends MensajePesadoTipo
{
@XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true)
protected SignatureType signature;
...
我在做的過程是:填寫MensajePesadoFirmadoTipo的所有信息,除非SignatureType。接下來,我解析XML並使用Java XMl Signature API。然後我又再次發誓,並且我打電話給WS。
我有一個簽名的完整性問題,因爲簽名的XML當我在調用WS之前馬歇爾是不一樣的。
XML簽名(簽字OK):
<ns1:MensajePesadoFirmadoTipo xmlns:ns1="urn:correos.es:ape.sne.datos.1.0" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" modalidad="1" ns1:idRef="idRef" ns1:idUnico="idUnico" tipo="NOTIFICACION">
...
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
</ds:Signature></ns1:MensajePesadoFirmadoTipo>
生成的XML後MARSHAL(誠信問題,德XML有變化):
<ns1:MensajePesadoFirmadoTipo xmlns:ns1="urn:correos.es:ape.sne.datos.1.0" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" modalidad="1" ns1:idRef="idRef" tipo="NOTIFICACION" ns1:idUnico="idUnico">
...
<ns2:Signature>
...
</ns2:Signature>
</ns1:MensajePesadoFirmadoTipo>
我怎樣才能讓這個過程確定??請幫忙!!!
非常感謝!
但是,是什麼問題?在這兩種情況下,您都有定義的名稱空間ds和ns2,所以如果您(或您的平臺)使用標準xml解析器,您將不會遇到任何問題 – fGo
簽名的xml和最終的xml不一樣,所以服務器給我一個錯誤的數字簽名。 – amartira