我在使用Java中的JAX-WS消费WCF服务时遇到问题

时间:2013-11-28 21:59:01

标签: java wcf web-services soap jax-ws

我必须使用身份验证和ssl来使用在WCF中公开的此服务。 我使用JAX-WS wsimport工具生成客户端。 但是当我运行应用程序时,会返回此错误:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: An error occurred when verifying security for the message.
    at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
    at $Proxy30.solicitarRecarga(Unknown Source)
    at postilion.realtime.efecty.ws.test.Test.main(Test.java:113)

这是我的wsdl:

<?xml version="1.0" encoding="utf-8"?><wsdl:definitions name="ServicioRecargas" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://tempuri.org/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex">
    <wsp:Policy wsu:Id="ServicioRecargas_policy">
        <wsp:ExactlyOne>
            <wsp:All>
                <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                    <wsp:Policy>
                        <sp:TransportToken>
                            <wsp:Policy>
                                <sp:HttpsToken RequireClientCertificate="false"/>
                            </wsp:Policy>
                        </sp:TransportToken>
                        <sp:AlgorithmSuite>
                            <wsp:Policy>
                                <sp:TripleDesSha256Rsa15/>
                            </wsp:Policy>
                        </sp:AlgorithmSuite>
                        <sp:Layout>
                            <wsp:Policy>
                                <sp:Lax/>
                            </wsp:Policy>
                        </sp:Layout>
                        <sp:IncludeTimestamp/>
                    </wsp:Policy>
                </sp:TransportBinding>
                <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                    <wsp:Policy>
                        <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                            <wsp:Policy>
                                <sp:WssUsernameToken10/>
                            </wsp:Policy>
                        </sp:UsernameToken>
                    </wsp:Policy>
                </sp:SignedSupportingTokens>
                <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                    <wsp:Policy>
                        <sp:MustSupportRefKeyIdentifier/>
                        <sp:MustSupportRefIssuerSerial/>
                    </wsp:Policy>
                </sp:Wss10>
            </wsp:All>
        </wsp:ExactlyOne>
    </wsp:Policy>
    <wsdl:types>
        <xsd:schema targetNamespace="http://tempuri.org/Imports">
            <xsd:import schemaLocation="ServicioRecargas.svc.xsd_xsd0.xsd" namespace="http://tempuri.org/"/>
            <xsd:import schemaLocation="ServicioRecargas.svc.xsd_xsd1.xsd" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
            <xsd:import schemaLocation="ServicioRecargas.svc.xsd_xsd2.xsd" namespace="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts"/>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="IServicioRecargas_ConsultarRecarga_InputMessage">
        <wsdl:part name="parameters" element="tns:ConsultarRecarga"/>
    </wsdl:message>
    <wsdl:message name="IServicioRecargas_ConsultarRecarga_OutputMessage">
        <wsdl:part name="parameters" element="tns:ConsultarRecargaResponse"/>
    </wsdl:message>
    <wsdl:message name="IServicioRecargas_solicitarRecarga_InputMessage">
        <wsdl:part name="parameters" element="tns:solicitarRecarga"/>
    </wsdl:message>
    <wsdl:message name="IServicioRecargas_solicitarRecarga_OutputMessage">
        <wsdl:part name="parameters" element="tns:solicitarRecargaResponse"/>
    </wsdl:message>
    <wsdl:portType name="IServicioRecargas">
        <wsdl:operation name="ConsultarRecarga">
            <wsdl:input wsaw:Action="http://tempuri.org/IServicioRecargas/ConsultarRecarga" message="tns:IServicioRecargas_ConsultarRecarga_InputMessage"/>
            <wsdl:output wsaw:Action="http://tempuri.org/IServicioRecargas/ConsultarRecargaResponse" message="tns:IServicioRecargas_ConsultarRecarga_OutputMessage"/>
        </wsdl:operation>
        <wsdl:operation name="solicitarRecarga">
            <wsdl:input wsaw:Action="http://tempuri.org/IServicioRecargas/solicitarRecarga" message="tns:IServicioRecargas_solicitarRecarga_InputMessage"/>
            <wsdl:output wsaw:Action="http://tempuri.org/IServicioRecargas/solicitarRecargaResponse" message="tns:IServicioRecargas_solicitarRecarga_OutputMessage"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ServicioRecargas" type="tns:IServicioRecargas">
        <wsp:PolicyReference URI="#ServicioRecargas_policy"/>
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="ConsultarRecarga">
            <soap:operation soapAction="http://tempuri.org/IServicioRecargas/ConsultarRecarga" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="solicitarRecarga">
            <soap:operation soapAction="http://tempuri.org/IServicioRecargas/solicitarRecarga" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ServicioRecargas">
        <wsdl:port name="ServicioRecargas" binding="tns:ServicioRecargas">
            <soap:address location="https://SOME_IP:SOME_PORT/ServiciosCajeros/ServicioRecargas.svc"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

这是我的ServicioRecargas.svc.xsd_xsd0.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/">
    <xs:import
        schemaLocation="ServicioRecargas.svc.xsd_xsd2.xsd"
        namespace="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts" />
    <xs:element name="ConsultarRecarga">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="request" nillable="true"
                    type="q1:RequestConfirmarRecarga"
                    xmlns:q1="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ConsultarRecargaResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="ConsultarRecargaResult"
                    nillable="true" type="q2:ResponseConfirmarRecarga"
                    xmlns:q2="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="solicitarRecarga">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="request" nillable="true"
                    type="q3:RequestRecargarCelular"
                    xmlns:q3="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="solicitarRecargaResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="solicitarRecargaResult"
                    nillable="true" type="q4:ResponseRecargarCelular"
                    xmlns:q4="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

这是我的ServicioRecargas.svc.xsd_xsd1.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="qualified"
    elementFormDefault="qualified"
    targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/">
    <xs:element name="anyType" nillable="true" type="xs:anyType" />
    <xs:element name="anyURI" nillable="true" type="xs:anyURI" />
    <xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
    <xs:element name="boolean" nillable="true" type="xs:boolean" />
    <xs:element name="byte" nillable="true" type="xs:byte" />
    <xs:element name="dateTime" nillable="true" type="xs:dateTime" />
    <xs:element name="decimal" nillable="true" type="xs:decimal" />
    <xs:element name="double" nillable="true" type="xs:double" />
    <xs:element name="float" nillable="true" type="xs:float" />
    <xs:element name="int" nillable="true" type="xs:int" />
    <xs:element name="long" nillable="true" type="xs:long" />
    <xs:element name="QName" nillable="true" type="xs:QName" />
    <xs:element name="short" nillable="true" type="xs:short" />
    <xs:element name="string" nillable="true" type="xs:string" />
    <xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
    <xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
    <xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
    <xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
    <xs:element name="char" nillable="true" type="tns:char" />
    <xs:simpleType name="char">
        <xs:restriction base="xs:int" />
    </xs:simpleType>
    <xs:element name="duration" nillable="true" type="tns:duration" />
    <xs:simpleType name="duration">
        <xs:restriction base="xs:duration">
            <xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
            <xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
            <xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="guid" nillable="true" type="tns:guid" />
    <xs:simpleType name="guid">
        <xs:restriction base="xs:string">
            <xs:pattern
                value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
        </xs:restriction>
    </xs:simpleType>
    <xs:attribute name="FactoryType" type="xs:QName" />
    <xs:attribute name="Id" type="xs:ID" />
    <xs:attribute name="Ref" type="xs:IDREF" />
</xs:schema>

**and last this is my ServicioRecargas.svc.xsd_xsd2.xsd:**

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema elementFormDefault="qualified"
    targetNamespace="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts">
    <xs:complexType name="RequestConfirmarRecarga">
        <xs:sequence>
            <xs:element minOccurs="0" name="CodigoPS" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="NombreCajero" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="idTx" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="llaveSesion" nillable="true"
                type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:element name="RequestConfirmarRecarga" nillable="true"
        type="tns:RequestConfirmarRecarga" />
    <xs:complexType name="ResponseConfirmarRecarga">
        <xs:sequence>
            <xs:element minOccurs="0" name="codigoMensaje" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="idTx" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="mensaje" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="observaciones" nillable="true"
                type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:element name="ResponseConfirmarRecarga" nillable="true"
        type="tns:ResponseConfirmarRecarga" />
    <xs:complexType name="RequestRecargarCelular">
        <xs:sequence>
            <xs:element minOccurs="0" name="Caja" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="CodigoPS" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="CodigoProyectoRecarga"
                type="xs:long" />
            <xs:element minOccurs="0" name="DescripcionPS" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="NombreCajero" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="NumeroCelular" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="Regional" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="ValorRecarga" type="xs:decimal" />
            <xs:element minOccurs="0" name="llaveSesion" nillable="true"
                type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:element name="RequestRecargarCelular" nillable="true"
        type="tns:RequestRecargarCelular" />
    <xs:complexType name="ResponseRecargarCelular">
        <xs:sequence>
            <xs:element minOccurs="0" name="IdentificadorTransaccion"
                nillable="true" type="xs:string" />
            <xs:element minOccurs="0" name="codigoMensaje" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="mensaje" nillable="true"
                type="xs:string" />
            <xs:element minOccurs="0" name="observaciones" nillable="true"
                type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:element name="ResponseRecargarCelular" nillable="true"
        type="tns:ResponseRecargarCelular" />
</xs:schema>

使用这些文件我可以使用JAX-WS生成我的类wsimport工具

 public class Test {


    static {
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier()
            {
                @Override
                public boolean verify(String hostname, SSLSession session)
                {
                    if (hostname.equals("SOME_IP"))
                        return true;
                    return false;
                }   
            });
    }

    /**
     * @param args
     * @throws MalformedURLException 
     */
    public static void main(String[] args) throws MalformedURLException {

        String trustStore = System.getProperty("javax.net.ssl.trustStore");
        System.setProperty("javax.net.ssl.trustStore", "C:\\Users\\ggomezb\\Desktop\\WS_Efecty_ADB\\config\\jks\\efecty.jks");
        trustStore = System.getProperty("javax.net.ssl.trustStorePassword");
        System.setProperty("javax.net.ssl.trustStorePassword", "123456");

        IServicioRecargas service;
        URL wsUrl = new URL("https://SOME_IP:SOME_PORT/ServiciosCajeros/ServicioRecargas.svc");

        QName wsQName = new QName("http://tempuri.org/", "ServicioRecargas");
        ServicioRecargas impl = new ServicioRecargas(wsUrl, wsQName);
        service = impl.getServicioRecargas();


        //BindingProvider bindingProvider = (BindingProvider) service;
        //bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, wsUrl.toString());
        //bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "usuarioCajeros");
        //bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "5wx1YCbTgckA+bg3mxsFlTTtunPbmgFIr2AHzHIq/1jmxHjh51A0m6moTPL0oCH0Q6WhiDyBGDHAPtPlepbk+Q==");

        Map<String, Object> req_ctx = ((BindingProvider)service).getRequestContext();
        req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, wsUrl.toString());

        Map<String, List<String>> headers = new HashMap<String, List<String>>();
        headers.put("Username", Collections.singletonList("usuarioCajeros"));
        headers.put("Password", Collections.singletonList("5wx1YCbTgckA+bg3mxsFlTTtunPbmgFIr2AHzHIq/1jmxHjh51A0m6moTPL0oCH0Q6WhiDyBGDHAPtPlepbk+Q=="));
        req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);



        SolicitarRecarga solicitarRecarga = new SolicitarRecarga();
        RequestRecargarCelular requestRecargarCelular = new RequestRecargarCelular();        

        ObjectFactory factory = new ObjectFactory();
        JAXBElement<String> createLlaveSesion = factory.createRequestRecargarCelularLlaveSesion("c8ffe140-8dc3-413f-a469-a359f45ef0a1");
        JAXBElement<String> createCodigoPS = factory.createRequestRecargarCelularCodigoPS("010010");
        JAXBElement<String> createDescripcionPS = factory.createRequestRecargarCelularDescripcionPS("prueba");
        JAXBElement<String> createNombreCajero = factory.createRequestRecargarCelularNombreCajero("epardo");
        JAXBElement<String> createCaja = factory.createRequestRecargarCelularCaja("1");
        long codigoProyectoRegional = 110145;
        JAXBElement<String> createRegional = factory.createRequestRecargarCelularRegional("1");
        JAXBElement<String> createNumeroCelular = factory.createRequestRecargarCelularNumeroCelular("3118027200");
        BigDecimal valorRecarga = new BigDecimal(10000);

        requestRecargarCelular.setLlaveSesion(createLlaveSesion);
        requestRecargarCelular.setCodigoPS(createCodigoPS);
        requestRecargarCelular.setDescripcionPS(createDescripcionPS);
        requestRecargarCelular.setNombreCajero(createNombreCajero);
        requestRecargarCelular.setCaja(createCaja);
        requestRecargarCelular.setCodigoProyectoRecarga(codigoProyectoRegional);
        requestRecargarCelular.setRegional(createRegional);
        requestRecargarCelular.setNumeroCelular(createNumeroCelular);
        requestRecargarCelular.setValorRecarga(valorRecarga);

        JAXBElement<RequestRecargarCelular> requestConfirmarRecargaJAXB = factory.createRequestRecargarCelular(requestRecargarCelular);

        solicitarRecarga.setRequest(requestConfirmarRecargaJAXB);

        JAXBElement<RequestRecargarCelular> requestRecargarCelularJAXB = solicitarRecarga.getRequest();
        requestRecargarCelular = requestRecargarCelularJAXB.getValue();

        SolicitarRecargaResponse rta = new SolicitarRecargaResponse();

        ResponseRecargarCelular responseRecargarCelular = service.solicitarRecarga(requestRecargarCelular);

        System.out.println(responseRecargarCelular.getCodigoMensaje());


    }

}

我已经尝试了很多方法来登录并将Web服务用于我的客户端,但我无法使用它...

使用处理程序创建最后一个表单,以便在soap消息中添加标题,然后抛出以下错误:

这是我的处理程序类:

public class WebServiceLogger implements SOAPHandler<SOAPMessageContext> {

        @Override
        public Set<QName> getHeaders() {
            return null;
        }

        @Override
        public void close(MessageContext arg0) {                
        }

        @Override
        public boolean handleFault(SOAPMessageContext arg0) {
                SOAPMessage message= arg0.getMessage();
                try {
                    message.writeTo(System.out);
                } catch (SOAPException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                return false;
        }

        @Override
        public boolean handleMessage(SOAPMessageContext arg0) {
                SOAPMessage message= arg0.getMessage();
                boolean isOutboundMessage=  (Boolean)arg0.get (MessageContext.MESSAGE_OUTBOUND_PROPERTY);
                try {
                    if(isOutboundMessage){
                            System.out.println("OUTBOUND MESSAGE\n");

                            SOAPEnvelope envelope = arg0.getMessage().getSOAPPart().getEnvelope();
                            SOAPHeader header = envelope.addHeader();

                            SOAPElement security = header.addChildElement("Security", "S", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

                            SOAPElement usernameToken = security.addChildElement("UsernameToken", "S");
                            usernameToken.addAttribute(new QName("xmlns:wsu"), "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");

                            SOAPElement username = usernameToken.addChildElement("Username", "S");
                            username.addTextNode("usuarioCajeros");

                            SOAPElement password = usernameToken.addChildElement("Password", "S");
                            password.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
                            password.addTextNode("5wx1YCbTgckA+bg3mxsFlTTtunPbmgFIr2AHzHIq/1jmxHjh51A0m6moTPL0oCH0Q6WhiDyBGDHAPtPlepbk+Q==");                  

                            message.writeTo(System.out);

                    }else{
                            System.out.println("INBOUND MESSAGE\n");
                            message.writeTo(System.out);
                    }

                } catch (SOAPException e) {
                        e.printStackTrace();
                        e.notifyAll();
                } catch (IOException e) {
                        e.printStackTrace();
                        e.notifyAll();
                }
                return false;
        } 
}

我在我的包装中从我的gerenated代码中得到了这个错误:

OUTBOUND MESSAGE

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Header><S:Security xmlns:S="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><S:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><S:Username>usuarioCajeros</S:Username><S:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">5wx1YCbTgckA+bg3mxsFlTTtunPbmgFIr2AHzHIq/1jmxHjh51A0m6moTPL0oCH0Q6WhiDyBGDHAPtPlepbk+Q==</S:Password></S:UsernameToken></S:Security></S:Header><S:Body><ns2:solicitarRecarga xmlns="http://schemas.datacontract.org/2004/07/Efecty.ServiciosSOA.SOARecargas.DataContracts" xmlns:ns2="http://tempuri.org/" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/"><ns2:request><Caja>1</Caja><CodigoPS>010010</CodigoPS><CodigoProyectoRecarga>110145</CodigoProyectoRecarga><DescripcionPS>prueba</DescripcionPS><NombreCajero>epardo</NombreCajero><NumeroCelular>3118027200</NumeroCelular><Regional>1</Regional><ValorRecarga>10000</ValorRecarga><llaveSesion>c8ffe140-8dc3-413f-a469-a359f45ef0a1</llaveSesion></ns2:request></ns2:solicitarRecarga></S:Body></S:Envelope>Exception in thread "main" com.sun.xml.internal.ws.streaming.XMLStreamReaderException: unexpected XML tag. expected: {http://tempuri.org/}solicitarRecargaResponse but found: {http://tempuri.org/}solicitarRecarga
    at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:203)
    at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:211)
    at com.sun.xml.internal.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:513)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:110)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
    at $Proxy31.solicitarRecarga(Unknown Source)
    at postilion.realtime.efecty.ws.test.Test.main(Test.java:114)

我非常感谢你的帮助。

0 个答案:

没有答案