Jump to content

bangging my head against WSDL / SOAP call


ThE_eNd

Recommended Posts

I'm trying to use a simple wsdl file and make a soap call but for the life of me I can't get it to work.

 

Here's the wsdl file:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:gnHPD_Staging_Table_Submit_Generic" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:s="urn:gnHPD_Staging_Table_Submit_Generic" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
  <xsd:schema elementFormDefault="qualified" targetNamespace="urn:gnHPD_Staging_Table_Submit_Generic">
   <xsd:element name="Submit" type="s:InputMapping"/>
   <xsd:complexType name="InputMapping">
    <xsd:sequence>
     <xsd:element name="Assigned_To_Group" type="xsd:string"/>
     <xsd:element name="AutoPush" type="s:AutoPushType"/>
     <xsd:element name="Case_Type" type="s:Case_TypeType"/>
     <xsd:element name="Category" type="xsd:string"/>
     <xsd:element name="Description" type="xsd:string"/>
     <xsd:element name="Details" type="xsd:string"/>
     <xsd:element name="Entry_Number" type="xsd:string"/>
     <xsd:element name="Integration_Application" type="xsd:string"/>
     <xsd:element name="Item" type="xsd:string"/>
     <xsd:element name="Priority" type="s:PriorityType"/>
     <xsd:element name="Source" type="s:SourceType"/>
     <xsd:element name="Submitter_UNIX" type="xsd:string"/>
     <xsd:element name="Summary" type="xsd:string"/>
     <xsd:element name="Type" type="xsd:string"/>
    </xsd:sequence>
   </xsd:complexType>
   <xsd:simpleType name="AutoPushType">
    <xsd:restriction base="xsd:string">
     <xsd:enumeration value="Auto Push"/>
    </xsd:restriction>
   </xsd:simpleType>
   <xsd:simpleType name="Case_TypeType">
    <xsd:restriction base="xsd:string">
     <xsd:enumeration value="Incident"/>
     <xsd:enumeration value="Question"/>
     <xsd:enumeration value="Request"/>
     <xsd:enumeration value="Problem"/>
    </xsd:restriction>
   </xsd:simpleType>
   <xsd:simpleType name="PriorityType">
    <xsd:restriction base="xsd:string">
     <xsd:enumeration value="4"/>
     <xsd:enumeration value="3"/>
     <xsd:enumeration value="2"/>
     <xsd:enumeration value="1"/>
    </xsd:restriction>
   </xsd:simpleType>
   <xsd:simpleType name="SourceType">
    <xsd:restriction base="xsd:string">
     <xsd:enumeration value="Phone"/>
     <xsd:enumeration value="Requester"/>
     <xsd:enumeration value="Email"/>
     <xsd:enumeration value="Web"/>
     <xsd:enumeration value="NMP"/>
    </xsd:restriction>
   </xsd:simpleType>
   <xsd:element name="SubmitResponse" type="s:OutputMapping"/>
   <xsd:complexType name="OutputMapping">
    <xsd:sequence>
     <xsd:element name="StagingTable_ID" type="xsd:string"/>
     <xsd:element name="HelpDesk_ID" type="xsd:string"/>
    </xsd:sequence>
   </xsd:complexType>
   <xsd:element name="AuthenticationInfo" type="s:AuthenticationInfo"/>
   <xsd:complexType name="AuthenticationInfo">
    <xsd:sequence>
     <xsd:element name="userName" type="xsd:string"/>
     <xsd:element name="password" type="xsd:string"/>
     <xsd:element minOccurs="0" name="authentication" type="xsd:string"/>
     <xsd:element minOccurs="0" name="locale" type="xsd:string"/>
     <xsd:element minOccurs="0" name="timeZone" type="xsd:string"/>
    </xsd:sequence>
   </xsd:complexType>
  </xsd:schema>
</wsdl:types>
   <wsdl:message name="SubmitSoapOut">
      <wsdl:part element="s:SubmitResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="SubmitSoapIn">
      <wsdl:part element="s:Submit" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="ARAuthenticate">
      <wsdl:part element="s:AuthenticationInfo" name="parameters"/>
   </wsdl:message>
   <wsdl:portType name="gnHPD_Staging_Table_Submit_GenericPortType">
      <wsdl:operation name="Submit">
         <wsdl:input message="s:SubmitSoapIn"/>
         <wsdl:output message="s:SubmitSoapOut"/>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="gnHPD_Staging_Table_Submit_GenericSoapBinding" type="s:gnHPD_Staging_Table_Submit_GenericPortType">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="Submit">
         <soap:operation soapAction="urn:gnHPD_Staging_Table_Submit_Generic/Submit" style="document"/>
         <wsdl:input>
            <soap:header message="s:ARAuthenticate" part="parameters" use="literal"></soap:header>
            <soap:body use="literal"/>
         </wsdl:input>
         <wsdl:output>
            <soap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="gnHPD_Staging_Table_Submit_GenericService">
  <wsdl:documentation>Generic Submit for HD</wsdl:documentation>
      <wsdl:port binding="s:gnHPD_Staging_Table_Submit_GenericSoapBinding" name="gnHPD_Staging_Table_Submit_GenericSoap">
         <soap:address location="http://example.org/midtier/services/ARService?server=example&webService=gnHPD_Staging_Table_Submit_Generic"/>
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>

 

Here's my php code:

$params = array(
  "Submitter_UNIX"=>'myunix',
  "Source"=>'Web',
  "Summary"=>'Test1',
  "Description"=>'Test1',
  "Category"=>'test services',
  "Type"=>'test solutions',
  "Item"=>'Problem',
  "Assigned_To_Group"=>'test solutions',
  "Case_Type"=>'Problem',
  "Priority"=>'4',
  "AutoPush" => 'Auto Push',
  "Details"=>'Test Details',
  "Entry_Number"=>'',
  "Integration_Application"=>'MyMobile'
);

$client = new SoapClient('http://example.org/midtier/WSDL/example/gnHPD_Staging_Table_Submit_Generic',array('trace' => 1 ));


$result = $client->Submit($params);

 

I get this reply

Fatal error: Uncaught SoapFault exception: [ns1:Server.userException] 
MessageType: 2 MessageNum: 149 MessageText: A user name must be supplied in the control record AppendedText: in D:\Inetpub\wwwroot\myMobile\test\testwsdl2.php:29 
Stack trace: #0 [internal function]: SoapClient->__call('Submit', Array) #1 D:\Inetpub\wwwroot\myMobile\test\testwsdl2.php(29): SoapClient->Submit(Array) #2 {main} thrown in D:\Inetpub\wwwroot\myMobile\test\testwsdl2.php on line 29

 

The only thing I can think of missing here is headers but I have no idea how to configure that.  Any insight is greately appreciated!

Link to comment
https://forums.phpfreaks.com/topic/221069-bangging-my-head-against-wsdl-soap-call/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.