Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Ticket #448 (new defect)

Opened 1 year ago

Last modified 1 year ago

soap4r: parameters cannot be resolved

Reported by: user Assigned to: nahi
Priority: normal Milestone: 1.5.9
Component: soap4r Version: 1.5
Keywords: Cc:

Description

I'm trying to get the following to work however it stops with part:parameters cannot be resolved

using creat_driver will tell me it needs 2 variables on getSubscribers and I am giving just 1 with the commented part below.

class SoapController < ApplicationController

require 'soap/wsdlDriver'
require 'http-access2'

def index
  wsdl="http://api.veritate.net/axis/services/TMService?wsdl"
  veritate = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
  veritate.generate_explicit_type = true
  veritate.wiredump_dev = STDERR
  puts.service_methods
  results - service.commonif(1)

  #    result = veritate.getSubscriber(
  #               :authInfo => { :organization=>"[#####]",
  #                              :username=>"[#####]",
  #                              :password=>"[#####]"
  #                            },
  #               :databaseId=>"PlB",
  #               :uid=>"crap",
  #               :email=>"[#####]"
  #             )
  end
end

with this wsdl file

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:impl="http://tmservice.services.axis.tripolis.com" xmlns:intf="http://tmservice.services.axis.tripolis.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://tmservice.services.axis.tripolis.com">
<!--WSDL created by Apache Axis version: 1.2.1
Built on Jun 14, 2005 (09:15:57 EDT)-->
 <types>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://tmservice.services.axis.tripolis.com" elementFormDefault="qualified">
   <element name="getEzines">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="AuthInfo">
    <sequence>
     <element name="organization" nillable="true" type="xsd:string"/>
     <element name="username" nillable="true" type="xsd:string"/>
     <element name="password" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getEzinesResponse">
    <complexType>
     <sequence>
      <element name="getEzinesReturn" type="impl:EzineInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="EzineInfo">
    <sequence>
     <element name="from" nillable="true" type="xsd:string"/>
     <element name="fromName" nillable="true" type="xsd:string"/>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="name" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getEditions">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="ezineId" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getEditionsResponse">
    <complexType>
     <sequence>
      <element name="getEditionsReturn" type="impl:EditionInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="EditionInfo">
    <sequence>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="name" nillable="true" type="xsd:string"/>
     <element name="subject" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getMailings">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="datetimeFrom" type="xsd:dateTime"/>
      <element name="datetimeTo" type="xsd:dateTime"/>
     </sequence>
    </complexType>
   </element>
   <element name="getMailingsResponse">
    <complexType>
     <sequence>
      <element name="getMailingsReturn" type="impl:MailingInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="MailingInfo">
    <sequence>
     <element name="editionId" nillable="true" type="xsd:string"/>
     <element name="editionName" nillable="true" type="xsd:string"/>
     <element name="embargo" nillable="true" type="xsd:dateTime"/>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="listId" nillable="true" type="xsd:string"/>
     <element name="listName" nillable="true" type="xsd:string"/>
     <element name="subject" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getMailingStatus">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="mailingId" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getMailingStatusResponse">
    <complexType>
     <sequence>
      <element name="getMailingStatusReturn" type="impl:MailingStatus"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="MailingStatus">
    <sequence>
     <element name="embargo" nillable="true" type="xsd:dateTime"/>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="status" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getDatabases">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
     </sequence>
    </complexType>
   </element>
   <element name="getDatabasesResponse">
    <complexType>
     <sequence>
      <element name="getDatabasesReturn" type="impl:DatabaseInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_xsd_string">
    <sequence>
     <element name="item" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
   </complexType>
   <complexType name="DatabaseInfo">
    <sequence>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="name" nillable="true" type="xsd:string"/>
     <element name="subscriberFields" nillable="true" type="impl:ArrayOf_xsd_string"/>
    </sequence>
   </complexType>
   <element name="getLists">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getListsResponse">
    <complexType>
     <sequence>
      <element name="getListsReturn" type="impl:ListInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ListInfo">
    <sequence>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="name" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getBouncesByMailing">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="mailingId" type="xsd:string"/>
      <element name="datetimeFrom" type="xsd:dateTime"/>
      <element name="datetimeTo" type="xsd:dateTime"/>
     </sequence>
    </complexType>
   </element>
   <element name="getBouncesByMailingResponse">
    <complexType>
     <sequence>
      <element name="getBouncesByMailingReturn" type="impl:BounceInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="BounceInfo">
    <sequence>
     <element name="uid" nillable="true" type="xsd:string"/>
     <element name="email" nillable="true" type="xsd:string"/>
     <element name="mailingId" nillable="true" type="xsd:string"/>
     <element name="dateTime" nillable="true" type="xsd:dateTime"/>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="statusCode" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getClicksByMailing">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="mailingId" type="xsd:string"/>
      <element name="datetimeFrom" type="xsd:dateTime"/>
      <element name="datetimeTo" type="xsd:dateTime"/>
     </sequence>
    </complexType>
   </element>
   <element name="getClicksByMailingResponse">
    <complexType>
     <sequence>
      <element name="getClicksByMailingReturn" type="impl:ClickInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ClickInfo">
    <sequence>
     <element name="uid" nillable="true" type="xsd:string"/>
     <element name="email" nillable="true" type="xsd:string"/>
     <element name="mailingId" nillable="true" type="xsd:string"/>
     <element name="dateTime" nillable="true" type="xsd:dateTime"/>
     <element name="link" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getOpensByMailing">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="mailingId" type="xsd:string"/>
      <element name="datetimeFrom" type="xsd:dateTime"/>
      <element name="datetimeTo" type="xsd:dateTime"/>
     </sequence>
    </complexType>
   </element>
   <element name="getOpensByMailingResponse">
    <complexType>
     <sequence>
      <element name="getOpensByMailingReturn" type="impl:OpenInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="OpenInfo">
    <sequence>
     <element name="uid" nillable="true" type="xsd:string"/>
     <element name="email" nillable="true" type="xsd:string"/>
     <element name="mailingId" nillable="true" type="xsd:string"/>
     <element name="dateTime" nillable="true" type="xsd:dateTime"/>
    </sequence>
   </complexType>
   <element name="createMailing">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="listId" type="xsd:string"/>
      <element name="listName" type="xsd:string"/>
      <element name="editionId" type="xsd:string"/>
      <element name="subscriberInfo" type="impl:SubscriberInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="KeyValuePair">
    <sequence>
     <element name="key" nillable="true" type="xsd:string"/>
     <element name="value" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOfKeyValuePair">
    <sequence>
     <element name="item" type="impl:KeyValuePair" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
   </complexType>
   <complexType name="SubscriberInfo">
    <sequence>
     <element name="uid" nillable="true" type="xsd:string"/>
     <element name="email" nillable="true" type="xsd:string"/>
     <element name="subscriberData" nillable="true" type="impl:ArrayOfKeyValuePair"/>
    </sequence>
   </complexType>
   <element name="createMailingResponse">
    <complexType>
     <sequence>
      <element name="createMailingReturn" type="impl:MailingInfo"/>
     </sequence>
    </complexType>
   </element>
   <element name="removeSubscriber">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="uid" type="xsd:string"/>
      <element name="email" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="removeSubscriberResponse">
    <complexType>
     <sequence>
      <element name="removeSubscriberReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="updateSubscriber">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="subscribers" type="impl:SubscriberSubscriptionInfo"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="SubscriptionInfo">
    <sequence>
     <element name="listId" nillable="true" type="xsd:string"/>
     <element name="listName" nillable="true" type="xsd:string"/>
     <element name="subscribed" nillable="true" type="xsd:boolean"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOfSubscriptionInfo">
    <sequence>
     <element name="item" type="impl:SubscriptionInfo" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
   </complexType>
   <complexType name="SubscriberSubscriptionInfo">
    <complexContent>
     <extension base="impl:SubscriberInfo">
      <sequence>
       <element name="subscriptionData" nillable="true" type="impl:ArrayOfSubscriptionInfo"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <element name="updateSubscriberResponse">
    <complexType>
     <sequence>
      <element name="updateSubscriberReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getSubscriber">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="uid" type="xsd:string"/>
      <element name="email" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getSubscriberResponse">
    <complexType>
     <sequence>
      <element name="getSubscriberReturn" type="impl:SubscriberInfo"/>
     </sequence>
    </complexType>
   </element>
   <element name="getSubscriberSubscriptions">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="uid" type="xsd:string"/>
      <element name="email" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getSubscriberSubscriptionsResponse">
    <complexType>
     <sequence>
      <element name="getSubscriberSubscriptionsReturn" type="impl:SubscriberSubscriptionInfo"/>
     </sequence>
    </complexType>
   </element>
   <element name="exportSubscribers">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="listId" type="xsd:string"/>
      <element name="mailTo" type="xsd:string"/>
      <element name="httpTo" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="exportSubscribersResponse">
    <complexType>
     <sequence>
      <element name="exportSubscribersReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="searchSubscribers">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="searchFor" type="impl:KeyValuePair"/>
     </sequence>
    </complexType>
   </element>
   <element name="searchSubscribersResponse">
    <complexType>
     <sequence>
      <element name="searchSubscribersReturn" type="impl:SubscriberInfo" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <element name="updateEdition">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="editionId" type="xsd:string"/>
      <element name="editionName" type="xsd:string"/>
      <element name="ezineId" type="xsd:string"/>
      <element name="subject" type="xsd:string"/>
      <element name="htmlUrl" type="xsd:string"/>
      <element name="textUrl" type="xsd:string"/>
      <element name="html" type="xsd:string"/>
      <element name="text" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="updateEditionResponse">
    <complexType>
     <sequence>
      <element name="updateEditionReturn" type="impl:EditionInfo"/>
     </sequence>
    </complexType>
   </element>
   <element name="previewEdition">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="editionId" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="previewEditionResponse">
    <complexType>
     <sequence>
      <element name="previewEditionReturn" type="impl:EditionPreview"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="EditionPreview">
    <sequence>
     <element name="editionInfo" nillable="true" type="impl:EditionInfo"/>
     <element name="html" nillable="true" type="xsd:string"/>
     <element name="text" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="scheduleMailing">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="listId" type="xsd:string"/>
      <element name="editionId" type="xsd:string"/>
      <element name="embargo" type="xsd:dateTime"/>
      <element name="approvalEmail" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="scheduleMailingResponse">
    <complexType>
     <sequence>
      <element name="scheduleMailingReturn" type="impl:MailingInfo"/>
     </sequence>
    </complexType>
   </element>
   <element name="importFTPList">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="ftpInfo" type="impl:FTPInfo"/>
      <element name="databaseId" type="xsd:string"/>
      <element name="listId" type="xsd:string"/>
      <element name="listName" type="xsd:string"/>
      <element name="mailTo" type="xsd:string"/>
      <element name="httpTo" type="xsd:string"/>
      <element name="createMissingFields" type="xsd:string"/>
      <element name="updateExistingSubscribers" type="xsd:string"/>
      <element name="synchronizeList" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="FTPInfo">
    <sequence>
     <element name="host" nillable="true" type="xsd:string"/>
     <element name="userName" nillable="true" type="xsd:string"/>
     <element name="password" nillable="true" type="xsd:string"/>
     <element name="fileName" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="importFTPListResponse">
    <complexType>
     <sequence>
      <element name="importFTPListReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="checkImportStatus">
    <complexType>
     <sequence>
      <element name="authInfo" type="impl:AuthInfo"/>
      <element name="importId" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="checkImportStatusResponse">
    <complexType>
     <sequence>
      <element name="checkImportStatusReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </schema>
 </types>

   <wsdl:message name="getClicksByMailingResponse">

      <wsdl:part name="parameters" element="impl:getClicksByMailingResponse"/>

   </wsdl:message>

   <wsdl:message name="scheduleMailingRequest">

      <wsdl:part name="parameters" element="impl:scheduleMailing"/>

   </wsdl:message>

   <wsdl:message name="previewEditionResponse">

      <wsdl:part name="parameters" element="impl:previewEditionResponse"/>

   </wsdl:message>

   <wsdl:message name="getListsResponse">

      <wsdl:part name="parameters" element="impl:getListsResponse"/>

   </wsdl:message>

   <wsdl:message name="previewEditionRequest">

      <wsdl:part name="parameters" element="impl:previewEdition"/>

   </wsdl:message>

   <wsdl:message name="getDatabasesRequest">

      <wsdl:part name="parameters" element="impl:getDatabases"/>

   </wsdl:message>

   <wsdl:message name="getMailingStatusRequest">

      <wsdl:part name="parameters" element="impl:getMailingStatus"/>

   </wsdl:message>

   <wsdl:message name="updateSubscriberResponse">

      <wsdl:part name="parameters" element="impl:updateSubscriberResponse"/>

   </wsdl:message>

   <wsdl:message name="exportSubscribersRequest">

      <wsdl:part name="parameters" element="impl:exportSubscribers"/>

   </wsdl:message>

   <wsdl:message name="checkImportStatusResponse">

      <wsdl:part name="parameters" element="impl:checkImportStatusResponse"/>

   </wsdl:message>

   <wsdl:message name="getSubscriberResponse">

      <wsdl:part name="parameters" element="impl:getSubscriberResponse"/>

   </wsdl:message>

   <wsdl:message name="getMailingsRequest">

      <wsdl:part name="parameters" element="impl:getMailings"/>

   </wsdl:message>

   <wsdl:message name="searchSubscribersResponse">

      <wsdl:part name="parameters" element="impl:searchSubscribersResponse"/>

   </wsdl:message>

   <wsdl:message name="getSubscriberSubscriptionsRequest">

      <wsdl:part name="parameters" element="impl:getSubscriberSubscriptions"/>

   </wsdl:message>

   <wsdl:message name="exportSubscribersResponse">

      <wsdl:part name="parameters" element="impl:exportSubscribersResponse"/>

   </wsdl:message>

   <wsdl:message name="getEditionsRequest">

      <wsdl:part name="parameters" element="impl:getEditions"/>

   </wsdl:message>

   <wsdl:message name="checkImportStatusRequest">

      <wsdl:part name="parameters" element="impl:checkImportStatus"/>

   </wsdl:message>

   <wsdl:message name="searchSubscribersRequest">

      <wsdl:part name="parameters" element="impl:searchSubscribers"/>

   </wsdl:message>

   <wsdl:message name="getClicksByMailingRequest">

      <wsdl:part name="parameters" element="impl:getClicksByMailing"/>

   </wsdl:message>

   <wsdl:message name="createMailingRequest">

      <wsdl:part name="parameters" element="impl:createMailing"/>

   </wsdl:message>

   <wsdl:message name="createMailingResponse">

      <wsdl:part name="parameters" element="impl:createMailingResponse"/>

   </wsdl:message>

   <wsdl:message name="getSubscriberRequest">

      <wsdl:part name="parameters" element="impl:getSubscriber"/>

   </wsdl:message>

   <wsdl:message name="importFTPListResponse">

      <wsdl:part name="parameters" element="impl:importFTPListResponse"/>

   </wsdl:message>

   <wsdl:message name="getListsRequest">

      <wsdl:part name="parameters" element="impl:getLists"/>

   </wsdl:message>

   <wsdl:message name="updateSubscriberRequest">

      <wsdl:part name="parameters" element="impl:updateSubscriber"/>

   </wsdl:message>

   <wsdl:message name="getOpensByMailingResponse">

      <wsdl:part name="parameters" element="impl:getOpensByMailingResponse"/>

   </wsdl:message>

   <wsdl:message name="updateEditionResponse">

      <wsdl:part name="parameters" element="impl:updateEditionResponse"/>

   </wsdl:message>

   <wsdl:message name="updateEditionRequest">

      <wsdl:part name="parameters" element="impl:updateEdition"/>

   </wsdl:message>

   <wsdl:message name="scheduleMailingResponse">

      <wsdl:part name="parameters" element="impl:scheduleMailingResponse"/>

   </wsdl:message>

   <wsdl:message name="getSubscriberSubscriptionsResponse">

      <wsdl:part name="parameters" element="impl:getSubscriberSubscriptionsResponse"/>

   </wsdl:message>

   <wsdl:message name="getBouncesByMailingResponse">

      <wsdl:part name="parameters" element="impl:getBouncesByMailingResponse"/>

   </wsdl:message>

   <wsdl:message name="getBouncesByMailingRequest">

      <wsdl:part name="parameters" element="impl:getBouncesByMailing"/>

   </wsdl:message>

   <wsdl:message name="removeSubscriberResponse">

      <wsdl:part name="parameters" element="impl:removeSubscriberResponse"/>

   </wsdl:message>

   <wsdl:message name="getDatabasesResponse">

      <wsdl:part name="parameters" element="impl:getDatabasesResponse"/>

   </wsdl:message>

   <wsdl:message name="getMailingStatusResponse">

      <wsdl:part name="parameters" element="impl:getMailingStatusResponse"/>

   </wsdl:message>

   <wsdl:message name="getMailingsResponse">

      <wsdl:part name="parameters" element="impl:getMailingsResponse"/>

   </wsdl:message>

   <wsdl:message name="removeSubscriberRequest">

      <wsdl:part name="parameters" element="impl:removeSubscriber"/>

   </wsdl:message>

   <wsdl:message name="getOpensByMailingRequest">

      <wsdl:part name="parameters" element="impl:getOpensByMailing"/>

   </wsdl:message>

   <wsdl:message name="getEzinesResponse">

      <wsdl:part name="parameters" element="impl:getEzinesResponse"/>

   </wsdl:message>

   <wsdl:message name="getEzinesRequest">

      <wsdl:part name="parameters" element="impl:getEzines"/>

   </wsdl:message>

   <wsdl:message name="getEditionsResponse">

      <wsdl:part name="parameters" element="impl:getEditionsResponse"/>

   </wsdl:message>

   <wsdl:message name="importFTPListRequest">

      <wsdl:part name="parameters" element="impl:importFTPList"/>

   </wsdl:message>

   <wsdl:portType name="TMService">

      <wsdl:operation name="getEzines">

         <wsdl:input name="getEzinesRequest" message="impl:getEzinesRequest"/>

         <wsdl:output name="getEzinesResponse" message="impl:getEzinesResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getEditions">

         <wsdl:input name="getEditionsRequest" message="impl:getEditionsRequest"/>

         <wsdl:output name="getEditionsResponse" message="impl:getEditionsResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getMailings">

         <wsdl:input name="getMailingsRequest" message="impl:getMailingsRequest"/>

         <wsdl:output name="getMailingsResponse" message="impl:getMailingsResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getMailingStatus">

         <wsdl:input name="getMailingStatusRequest" message="impl:getMailingStatusRequest"/>

         <wsdl:output name="getMailingStatusResponse" message="impl:getMailingStatusResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getDatabases">

         <wsdl:input name="getDatabasesRequest" message="impl:getDatabasesRequest"/>

         <wsdl:output name="getDatabasesResponse" message="impl:getDatabasesResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getLists">

         <wsdl:input name="getListsRequest" message="impl:getListsRequest"/>

         <wsdl:output name="getListsResponse" message="impl:getListsResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getBouncesByMailing">

         <wsdl:input name="getBouncesByMailingRequest" message="impl:getBouncesByMailingRequest"/>

         <wsdl:output name="getBouncesByMailingResponse" message="impl:getBouncesByMailingResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getClicksByMailing">

         <wsdl:input name="getClicksByMailingRequest" message="impl:getClicksByMailingRequest"/>

         <wsdl:output name="getClicksByMailingResponse" message="impl:getClicksByMailingResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getOpensByMailing">

         <wsdl:input name="getOpensByMailingRequest" message="impl:getOpensByMailingRequest"/>

         <wsdl:output name="getOpensByMailingResponse" message="impl:getOpensByMailingResponse"/>

      </wsdl:operation>

      <wsdl:operation name="createMailing">

         <wsdl:input name="createMailingRequest" message="impl:createMailingRequest"/>

         <wsdl:output name="createMailingResponse" message="impl:createMailingResponse"/>

      </wsdl:operation>

      <wsdl:operation name="removeSubscriber">

         <wsdl:input name="removeSubscriberRequest" message="impl:removeSubscriberRequest"/>

         <wsdl:output name="removeSubscriberResponse" message="impl:removeSubscriberResponse"/>

      </wsdl:operation>

      <wsdl:operation name="updateSubscriber">

         <wsdl:input name="updateSubscriberRequest" message="impl:updateSubscriberRequest"/>

         <wsdl:output name="updateSubscriberResponse" message="impl:updateSubscriberResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getSubscriber">

         <wsdl:input name="getSubscriberRequest" message="impl:getSubscriberRequest"/>

         <wsdl:output name="getSubscriberResponse" message="impl:getSubscriberResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getSubscriberSubscriptions">

         <wsdl:input name="getSubscriberSubscriptionsRequest" message="impl:getSubscriberSubscriptionsRequest"/>

         <wsdl:output name="getSubscriberSubscriptionsResponse" message="impl:getSubscriberSubscriptionsResponse"/>

      </wsdl:operation>

      <wsdl:operation name="exportSubscribers">

         <wsdl:input name="exportSubscribersRequest" message="impl:exportSubscribersRequest"/>

         <wsdl:output name="exportSubscribersResponse" message="impl:exportSubscribersResponse"/>

      </wsdl:operation>

      <wsdl:operation name="searchSubscribers">

         <wsdl:input name="searchSubscribersRequest" message="impl:searchSubscribersRequest"/>

         <wsdl:output name="searchSubscribersResponse" message="impl:searchSubscribersResponse"/>

      </wsdl:operation>

      <wsdl:operation name="updateEdition">

         <wsdl:input name="updateEditionRequest" message="impl:updateEditionRequest"/>

         <wsdl:output name="updateEditionResponse" message="impl:updateEditionResponse"/>

      </wsdl:operation>

      <wsdl:operation name="previewEdition">

         <wsdl:input name="previewEditionRequest" message="impl:previewEditionRequest"/>

         <wsdl:output name="previewEditionResponse" message="impl:previewEditionResponse"/>

      </wsdl:operation>

      <wsdl:operation name="scheduleMailing">

         <wsdl:input name="scheduleMailingRequest" message="impl:scheduleMailingRequest"/>

         <wsdl:output name="scheduleMailingResponse" message="impl:scheduleMailingResponse"/>

      </wsdl:operation>

      <wsdl:operation name="importFTPList">

         <wsdl:input name="importFTPListRequest" message="impl:importFTPListRequest"/>

         <wsdl:output name="importFTPListResponse" message="impl:importFTPListResponse"/>

      </wsdl:operation>

      <wsdl:operation name="checkImportStatus">

         <wsdl:input name="checkImportStatusRequest" message="impl:checkImportStatusRequest"/>

         <wsdl:output name="checkImportStatusResponse" message="impl:checkImportStatusResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="TMServiceSoapBinding" type="impl:TMService">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getEzines">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getEzinesRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getEzinesResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getEditions">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getEditionsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getEditionsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getMailings">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getMailingsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getMailingsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getMailingStatus">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getMailingStatusRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getMailingStatusResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getDatabases">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getDatabasesRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getDatabasesResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getLists">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getListsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getListsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getBouncesByMailing">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getBouncesByMailingRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getBouncesByMailingResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getClicksByMailing">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getClicksByMailingRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getClicksByMailingResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getOpensByMailing">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getOpensByMailingRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getOpensByMailingResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="createMailing">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="createMailingRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="createMailingResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="removeSubscriber">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="removeSubscriberRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="removeSubscriberResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="updateSubscriber">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="updateSubscriberRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="updateSubscriberResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getSubscriber">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getSubscriberRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getSubscriberResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getSubscriberSubscriptions">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getSubscriberSubscriptionsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getSubscriberSubscriptionsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="exportSubscribers">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="exportSubscribersRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="exportSubscribersResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="searchSubscribers">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="searchSubscribersRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="searchSubscribersResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="updateEdition">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="updateEditionRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="updateEditionResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="previewEdition">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="previewEditionRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="previewEditionResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="scheduleMailing">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="scheduleMailingRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="scheduleMailingResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="importFTPList">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="importFTPListRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="importFTPListResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="checkImportStatus">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="checkImportStatusRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="checkImportStatusResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="TMServiceService">

      <wsdl:port name="TMService" binding="impl:TMServiceSoapBinding">

         <wsdlsoap:address location="http://api.veritate.net/axis/services/TMService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

Change History

(follow-up: ↓ 2 ) 10/29/07 21:19:56 changed by nahi

  • milestone changed from undefined to 1.5.9.

Did you edit the WSDL by hand? According to XML Namespace,

  <types>
    ...
  </types>

must be;

  <wsdl:types>
    ...
  </wsdl:types>

Please fix the WSDL and try it again.

(in reply to: ↑ 1 ) 10/29/07 21:37:01 changed by user

unfortunately this is not a wsdl file I can edit. the ruby app I'm creating is talking to an external company using SOAP.

10/29/07 21:47:45 changed by nahi

Hmm. Can you talk to the company admin? Clearly the WSDL has an illegal syntax so the WSDL should be fixed soon...

For a workaround, download the WSDL as a local file and edit it. Then put

  wsdl = "/opt/soap/syntaxErrorCorrected.wsdl"

in your app.

By the way, WSDLDriverFactory fetches WSDL and parse it every time you call it. When you find it's slow, consider to use wsdl2ruby.rb. cf. http://markthomas.org/2007/09/12/getting-started-with-soap4r/

10/29/07 23:01:17 changed by user

I will tell it to the person in charge to comuunicate it to the admin over there... in the meantime I allready made a local copy and this works somewhat better just one strange thing yet to be conquered

class SoapController < ApplicationController

require 'soap/wsdlDriver'
require 'http-access2'

def index
  wsdl="http://api.veritate.net/axis/services/TMService?wsdl"
  veritate = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
  veritate.generate_explicit_type = true
  result = veritate.getSubscriber(
                 :authInfo => { :organization=>"[#####]",
                                :username=>"[#####]",
                                :password=>"[#####]"
                              },
                 :databaseId=>"PlB",
                 :uid=>"test",
                 :email=>"[#####]"
               )
  end
end

will give me : The AuthInfo? object is not valid Can this be part of the response (think not) or is my object still not right ???

btw

./wsdl2ruby.rb --wsdl [the wsdl file] --type client --force doesn't give any output at all... (using soap4r 1.5.5 and ruby 1.8.5

10/29/07 23:55:50 changed by nahi

Sorry for your inconvenience but soap4r-1.5.5 cannot handle document/literal service well. Would you please update soap4r module to 1.5.8? => http://dev.ctor.org/soap4r/wiki#Download

wsdl2ruby.rb: you are invoking wsdl2ruby.rb in lib/wsdl/soap/wsdl2ruby.rb, right? It's just a library and there's a bin/wsdl2ruby.rb which utilize this lib. You'll see bin/wsdl2ruby.rb in soap4r-1.5.8.

(follow-up: ↓ 7 ) 10/29/07 23:57:41 changed by nahi

By the way I get the following SOAP request with your sample + soap4r-1.5.8. Seems to be good.

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <env:Body>
    <n1:getSubscriber xmlns:n1="http://tmservice.services.axis.tripolis.com">
      <n1:authInfo>
        <n1:organization>[#####]</n1:organization>
        <n1:username>[#####]</n1:username>
        <n1:password>[#####]</n1:password>
      </n1:authInfo>
      <n1:databaseId>PlB</n1:databaseId>
      <n1:uid>test</n1:uid>
      <n1:email>[#####]</n1:email>
    </n1:getSubscriber>
  </env:Body>
</env:Envelope>

(in reply to: ↑ 6 ) 10/30/07 23:10:46 changed by user

I did put the wsdl file local modified it, upgraded to soap4r 1.5.8 and it is working much better now however the SOAP server expects the following instead of the above...

I did add this to the defaultDriver init_methods {{{ opt.merge!({

:elementformdefault => true, :attributeformdefault => true

})}}}

but this doenn't solve the rest.. At the moment it complains about the AuthInfo? that is faulty

{{{<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tms="http://wstest._2organize.nl" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body>

<tms:getSubscriber>

<authInfo xsi:type="impl:AuthInfo">

<organization xsi:type="xsd:string">#####</organization> <password xsi:type="xsd:string">#####</password> <username xsi:type="xsd:string">#####</username>

</authInfo> <databaseId xsi:type="xsd:string">#####</databaseId> <uid xsi:type="xsd:string">#####</uid> <email xsi:type="xsd:string">#####</email>

</tms:getSubscriber>

</soap:Body>

</soap:Envelope>}}}

11/01/07 01:32:47 changed by user

well kinda got it to work.... the server still croaks about deserializer for type AuthInfo? but.... the code

#!/usr/bin/env ruby

require 'rubygems'
require 'defaultDriver.rb'

obj = TMService.new()
obj.generate_explicit_type = true
obj.wiredump_dev = STDERR

ele = SOAP::SOAPElement.new("tms:getSubscriber")
ele0 = SOAP::SOAPElement.new("authInfo") ele0.extraattr["xsi:type"] = "impl:AuthInfo"

ele1 = SOAP::SOAPElement.new("organization")
ele1.extraattr["xsi:type"] = "xsd:string"
ele1.text = "[#####]"
ele2 = SOAP::SOAPElement.new("password") ele2.extraattr["xsi:type"] = "xsd:string"
ele2.text = "[#####]"
ele3 = SOAP::SOAPElement.new("username") ele3.extraattr["xsi:type"] = "xsd:string"
ele3.text = "[#####]"

ele4 = SOAP::SOAPElement.new("databaseId")
ele4.extraattr["xsi:type"] = "xsd:string"
ele4.text = "Plb"
ele5 = SOAP::SOAPElement.new("uid")
ele5.extraattr["xsi:type"] = "xsd:string"
ele5.text = "crap"
ele6 = SOAP::SOAPElement.new("email")
ele6.extraattr["xsi:type"] = "xsd:string"
ele6.text = "daniel@2organize.com"

ele0.add(ele1)
ele0.add(ele2)
ele0.add(ele3)
ele.add(ele0)
ele.add(ele4)
ele.add(ele5)
ele.add(ele6)

response = obj.getSubscriber(ele)

Tell me there is a nicer way for this !!!