JAX-WS - Adding SOAP Headers

后端 未结 10 2252
鱼传尺愫
鱼传尺愫 2020-12-05 02:11

I am trying to create a standalone client to consume some web services. I must add my username and password to the SOAP Header. I tried adding the credentials as follows:

10条回答
  •  渐次进展
    2020-12-05 02:56

    Adding an object to header we use the examples used here,yet i will complete

      ObjectFactory objectFactory = new ObjectFactory();
            CabeceraCR cabeceraCR =objectFactory.createCabeceraCR();
            cabeceraCR.setUsuario("xxxxx");
            cabeceraCR.setClave("xxxxx");
    

    With object factory we create the object asked to pass on the header. The to add to the header

      WSBindingProvider bp = (WSBindingProvider)wsXXXXXXSoap;
            bp.setOutboundHeaders(
                    // Sets a simple string value as a header
                    Headers.create(jaxbContext,objectFactory.createCabeceraCR(cabeceraCR))
                    );
    

    We used the WSBindingProvider to add the header. The object will have some error if used directly so we use the method

    objectFactory.createCabeceraCR(cabeceraCR)
    

    This method will create a JAXBElement like this on the object Factory

      @XmlElementDecl(namespace = "http://www.creditreport.ec/", name = "CabeceraCR")
        public JAXBElement createCabeceraCR(CabeceraCR value) {
            return new JAXBElement(_CabeceraCR_QNAME, CabeceraCR.class, null, value);
        }
    

    And the jaxbContext we obtained like this:

      jaxbContext = (JAXBRIContext) JAXBContext.newInstance(CabeceraCR.class.getPackage().getName());
    

    This will add the object to the header.

提交回复
热议问题