Побежал wsdl2ruby.rb ... что теперь? - PullRequest
0 голосов
/ 15 марта 2011

От клиента

# SYNOPSIS
#   linkInfo(requestHeader, linkInfoRequest)
#
# ARGS
#   requestHeader   RequestHeader - {urn:Map24Routing}RequestHeader
#   linkInfoRequest LinkInfoRequest - {urn:Map24Routing}LinkInfoRequest
#
# RETURNS
#   linkInfoResponse LinkInfoResponse - {urn:Map24Routing}LinkInfoResponse
#
requestHeader = linkInfoRequest = nil
puts obj.linkInfo(requestHeader, linkInfoRequest)

Из реестра Mapping

EncodedRegistry.register(
    :class => RequestHeader,
    :schema_type => XSD::QName.new(NsMap24Routing, "RequestHeader"),
    :schema_element => [
      ["map24ID", ["SOAP::SOAPString", XSD::QName.new(NsMap24Routing, "Map24ID")], [0, 1]],
      ["clientID", ["SOAP::SOAPString", XSD::QName.new(NsMap24Routing, "ClientID")], [0, 1]],
      ["requestID", ["SOAP::SOAPString", XSD::QName.new(NsMap24Routing, "RequestID")], [0, 1]],
      ["authenticationKey", ["SOAP::SOAPString", XSD::QName.new(NsMap24Routing, "AuthenticationKey")], [0, 1]],
      ["customerHashtable", ["ArrayOfCustomerKeyValuePair", XSD::QName.new(NsMap24Routing, "CustomerHashtable")], [0, 1]]
    ]
)

EncodedRegistry.register(
    :class => LinkInfoRequest,
    :schema_type => XSD::QName.new(NsMap24Routing, "LinkInfoRequest"),
    :schema_element => [
      ["coordinate", ["Coordinate", XSD::QName.new(NsMap24Routing, "Coordinate")], [0, 1]],
      ["maxRoadType", ["SOAP::SOAPInt", XSD::QName.new(NsMap24Routing, "MaxRoadType")], [0, 1]],
      ["requestProperties", ["ArrayOfRequestProperty", XSD::QName.new(NsMap24Routing, "RequestProperties")], [0, 1]],
      ["routingServiceID", ["SOAP::SOAPString", XSD::QName.new(NsMap24Routing, "RoutingServiceID")], [0, 1]]
    ]
)

Выполнение запроса / ответа

@client = Map24RoutingPortType.new
header = {:Map24ID => Map24Routing::MAP_24_ID}
request = {:Coordinate => {:Longitude => lng.to_f * 60, :Latitude => lat.to_f * 60}}
response = @client.linkInfo(header,request)

Я пробовал различные значения для заголовка и запроса и альтернативныемежду ошибками

SOAP :: Mapping :: MappingError (Невозможно сопоставить хэш с SOAP / OM.):

Неправильное количество агентов

и не может преобразовать хэш

Буду признателен за любую помощь, я не могу использовать savon, потому что я получаю ошибки httpi на производстве

1 Ответ

0 голосов
/ 15 марта 2011

Как выясняется, каждый элемент в сопоставлении является объектом, который вы можете вызвать new

@client = Map24RoutingPortType.new
header = RequestHeader.new
header.map24ID = Map24Routing::MAP_24_ID
coordinate = Coordinate.new
coordinate.longitude = lng.to_f * 60
coordinate.latitude = lat.to_f * 60
request = LinkInfoRequest.new
request.coordinate = coordinate
response = @client.linkInfo(header,request) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...