1 Reply Latest reply on Nov 29, 2007 5:27 AM by asoldano

    endPoint and SOAP headers, how to work this?

    camateusno

      Hi all, Im have a problem with SOAP headers, because i dont know how see it in endpoint. Explain:

      first im consume de webservice, and i see this and more:
      a class SEI: QMWISeSoap
      a class that provide constructors: ObjectFactory

      The server requires two soap headers, these are build by ObjectFactory, and return a object JAXBElement:
      /**
      * Create an instance of {@link JAXBElement }{@code <}{@link TrustHeader }{@code >}}
      *
      */
      @XmlElementDecl(namespace = "http://questionmark.com/QMWISe/", name = "Trust")
      public JAXBElement createTrust(TrustHeader value) {
      return new JAXBElement(_Trust_QNAME, TrustHeader.class, null, value);
      }


      Now, in a class QMWISeWebService is the call to SEI:
      protected QMWISeWebService() {
      try {
      if (endPoint == null){
      endPoint = new QMWISe().getQMWISeSoap();
      }
      } catch (Exception ex) {
      ex.printStackTrace();
      }


      And by example i have a class that inherit from QMWISeWebService :

      public class ParticipantData extends QMWISeWebService {

      /**
      * This method processes a Participant Name and a Password and checks
      * whether there is a participant with the Participant Name, and if so
      * whether the Password is theirs.
      *
      * @param participantID
      * @param password
      * @param status
      * @param participantName
      */
      public void checkParticipant(String participantName, String password,
      Holder status, Holder participantID) {
      endPoint.checkParticipant(participantName, password, status,
      participantID);
      }


      The problem is that i dont know how connect the JAXBElement returned by ObjectFactory with the SEI class.

      Part of SEI class is:

      @WebService(name = "QMWISeSoap", targetNamespace = "http://questionmark.com/QMWISe/")
      public interface QMWISeSoap {


      /**
      * This method provides information about the QMWISe software that is installed, including the version of the software that is installed, which build of the software is installed and a statement of Question Mark's rights under the license agreement.
      *
      * @return
      * returns com.questionmark.qmwise.Version
      */
      @WebMethod(operationName = "GetAbout", action = "http://questionmark.com/QMWISe/GetAbout")
      @WebResult(name = "GetAboutResult", targetNamespace = "http://questionmark.com/QMWISe/")
      @RequestWrapper(localName = "GetAbout", targetNamespace = "http://questionmark.com/QMWISe/", className = "com.questionmark.qmwise.GetAbout")
      @ResponseWrapper(localName = "GetAboutResponse", targetNamespace = "http://questionmark.com/QMWISe/", className = "com.questionmark.qmwise.GetAboutResponse")
      public Version getAbout();


      And none method of SEI have a parameter that contain data for the SOAP header.

      perhaps this is a trivial problem, but im need help. thanks.

      What is the mechanism?, the objectFactory provide the JAXBElement, and what to do with that?, What can I do so that the information finally reaches the envelope of soap?, thanks in advance.