Java 如何修复';元素ns1:WS_personageactempresarial.Execute有一个相对命名空间:ns1=";现代化联合会

Java 如何修复';元素ns1:WS_personageactempresarial.Execute有一个相对命名空间:ns1=";现代化联合会,java,soap,axis2,ws-security,genexus,Java,Soap,Axis2,Ws Security,Genexus,我正在开发一个SOAP客户机,用WS-Security调用Web服务。我使用axis2-1.6.2使用Eclipse生成de存根。我要调用的WS的URL是: 这是XML: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/

我正在开发一个SOAP客户机,用WS-Security调用Web服务。我使用axis2-1.6.2使用Eclipse生成de存根。我要调用的WS的URL是:

这是XML:

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp200409="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsp200607="http://www.w3.org/2006/07/ws-policy" xmlns:ns0="DGI_Modernizacion_Consolidado" targetNamespace="DGI_Modernizacion_Consolidado">
<wsdl:types xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:schema>
<xsd:import schemaLocation="ws_personaGetActEmpresarial.xsd1.xsd" namespace="DGI_Modernizacion_Consolidado"/></xsd:schema></wsdl:types>
<wsdl:message name="WS_PersonaGetActEmpresarial.ExecuteSoapIn">
<wsdl:part name="parameters" element="xsns:WS_PersonaGetActEmpresarial.Execute" xmlns:xsns="DGI_Modernizacion_Consolidado"/></wsdl:message>
<wsdl:message name="WS_PersonaGetActEmpresarial.ExecuteSoapOut">
<wsdl:part name="parameters" element="xsns:WS_PersonaGetActEmpresarial.ExecuteResponse" xmlns:xsns="DGI_Modernizacion_Consolidado"/></wsdl:message>
<wsdl:portType name="WS_PersonaGetActEmpresarialSoapPort">
<wsdl:operation name="Execute">
<wsdl:input name="ExecuteRequest" message="ns0:WS_PersonaGetActEmpresarial.ExecuteSoapIn"/>
<wsdl:output name="ExecuteResponse" message="ns0:WS_PersonaGetActEmpresarial.ExecuteSoapOut"/></wsdl:operation></wsdl:portType>
<wsdl:binding name="WS_PersonaGetActEmpresarialSoapBinding" type="ns0:WS_PersonaGetActEmpresarialSoapPort">
<soap11:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="Execute">
<soap11:operation soapAction="DGI_Modernizacion_Consolidadoaction/AWS_PERSONAGETACTEMPRESARIAL.Execute" style="document"/>
<wsdl:input name="ExecuteRequest">
<soap11:body use="literal"/></wsdl:input>
<wsdl:output name="ExecuteResponse">
<soap11:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding>
<wsdl:service name="WS_PersonaGetActEmpresarial">
<wsp:PolicyReference URI="#policy0" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"/>
<wsdl:port name="WS_PersonaGetActEmpresarialSoapPort" binding="ns0:WS_PersonaGetActEmpresarialSoapBinding">
<soap11:address location="https://efactura.dgi.gub.uy:6475/efactura/ws_personaGetActEmpresarial"/></wsdl:port></wsdl:service>
<wsp:Policy wsu:Id="policy0" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsp:ExactlyOne>
<wsp:All>
<dpe:summary xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512" xmlns:dpe="http://www.datapower.com/extensions">

<dppolicy:domain xmlns:dppolicy="http://www.datapower.com/policy">
      http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512
    </dppolicy:domain>

<description>
      Implements WS Security Policy 1.1 - support SignedParts
    </description>
  </dpe:summary>
<sp:SignedParts xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512">

<sp:Body/>
      </sp:SignedParts></wsp:All></wsp:ExactlyOne></wsp:Policy></wsdl:definitions>
这是我的police.xml

    <?xml version="1.0" encoding="UTF-8"?>
<wsp:Policy wsu:Id="SigOnly" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
    <wsp:ExactlyOne>
        <wsp:All>
            <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <wsp:Policy>
                    <sp:InitiatorToken>
                        <wsp:Policy>
                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                                <wsp:Policy>
                                    <sp:WssX509V3Token10/>
                                </wsp:Policy>
                            </sp:X509Token>
                        </wsp:Policy>
                    </sp:InitiatorToken>
                    <sp:RecipientToken>
                        <wsp:Policy>
                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
                                <wsp:Policy>
                                    <sp:WssX509V3Token10/>
                                </wsp:Policy>
                            </sp:X509Token>
                        </wsp:Policy>
                    </sp:RecipientToken>
                    <sp:AlgorithmSuite>
                        <wsp:Policy>
                            <sp:TripleDesRsa15/>
                        </wsp:Policy>
                    </sp:AlgorithmSuite>
                    <sp:Layout>
                        <wsp:Policy>
                            <sp:Strict/>
                        </wsp:Policy>
                    </sp:Layout>


                </wsp:Policy>
            </sp:AsymmetricBinding>
            <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <wsp:Policy>
                    <sp:MustSupportRefKeyIdentifier/>
                    <sp:MustSupportRefIssuerSerial/>
                </wsp:Policy>
            </sp:Wss10>
            <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <sp:Body/>
            </sp:SignedParts>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>


您可以附加policy.xml并使用Rampart 1.4。

您可以附加policy.xml并使用Rampart 1.4。

我使用Rampart 1.6.2,我只需复制主体问题中的policy.xml。好的,在您的存档中检查您的特权。可以尝试其他类型的签名,这可以工作!我使用rampart 1.6.2,我只是复制了主体问题中的policy.xml。好的,在你的存档中检查你的特权。特权没问题。你可以尝试其他类型的签名人,这可以工作!我认为问题出在policy.xml中,因为签名使用SHA-2,而这没有反映在policy.xml中。自动生成的存根中有以下代码:env=toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI())、wS_PersonalGetActEmpresarialexecute0、optimizeContent(new javax.xml.namespace.QName(“DGI_Modernizacion_Consolidado”,“execute”)),new javax.xml.namespace.QName(“DGI_Modernizacion_Consolidado”,“execute”);_serviceClient.addHeadersToEnvelope(env);_messageContext.setEnvelope(env);_operationClient.addMessageContext(_messageContext);_operationClient.execute(true);该代码是生成错误的代码。我认为问题出在policy.xml中,因为签名使用SHA-2,而这没有反映在policy.xml中。自动生成的存根是以下代码:env=toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),wS_PersonalGetActEmpresarialexecute0,optimizeContent(new javax.xml.namespace.QName(“DGI_modernization_Consolidado”,“execute”)),new javax.xml.namespace.QName(“DGI_modernization_Consolidado”,“execute”);_serviceClient.addheaderstoenvelop(env);_messageContext.setenv;_operationClient.addMessageContext(_messageContext);_operationClient.execute(true);该代码就是生成错误的代码
    <?xml version="1.0" encoding="UTF-8"?>
<wsp:Policy wsu:Id="SigOnly" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
    <wsp:ExactlyOne>
        <wsp:All>
            <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <wsp:Policy>
                    <sp:InitiatorToken>
                        <wsp:Policy>
                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                                <wsp:Policy>
                                    <sp:WssX509V3Token10/>
                                </wsp:Policy>
                            </sp:X509Token>
                        </wsp:Policy>
                    </sp:InitiatorToken>
                    <sp:RecipientToken>
                        <wsp:Policy>
                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
                                <wsp:Policy>
                                    <sp:WssX509V3Token10/>
                                </wsp:Policy>
                            </sp:X509Token>
                        </wsp:Policy>
                    </sp:RecipientToken>
                    <sp:AlgorithmSuite>
                        <wsp:Policy>
                            <sp:TripleDesRsa15/>
                        </wsp:Policy>
                    </sp:AlgorithmSuite>
                    <sp:Layout>
                        <wsp:Policy>
                            <sp:Strict/>
                        </wsp:Policy>
                    </sp:Layout>


                </wsp:Policy>
            </sp:AsymmetricBinding>
            <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <wsp:Policy>
                    <sp:MustSupportRefKeyIdentifier/>
                    <sp:MustSupportRefIssuerSerial/>
                </wsp:Policy>
            </sp:Wss10>
            <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <sp:Body/>
            </sp:SignedParts>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>