сопоставление WCF getURL со строкой всегда возвращает NULL (Taleo SOAP)

КРАТКИЙ ОБЗОР:
Taleo имеет единственную операцию «Dispatcher WSDL», которая должна возвращать URL-адрес для использования с его WebAPI WSDL... цель состоит в том, чтобы разрешить URL-адрес для всех целей и цели программно закодированы.

Для операции getURL представление XML WcfTestClient.exe показывает, что в конверте SOAP был возвращен URL-адрес.

Однако форматированное представление WcfTestClient.exe показывает
Имя: (возврат) Значение: (null) Тип: NullObject

Мой код С# vs2010 .NET 4; taleoURL всегда имеет значение null

DispatcherAPIClient dispatcherClient = new DispatcherAPIClient("rpcrouter");
string taleoOrgCode = "TALEOSK";
string taleoURL = dispatcherClient.getURL(taleoOrgCode);
if (taleoURL == null) Console.WriteLine("null returned for " + taleoOrgCode);

Этот нуль странный, потому что вот XML-ответ от WcfTestClient.exe:

<SOAP-ENV:Envelope
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <SOAP-ENV:Body>
<ns1:getURLResponse xmlns:ns1="urn:TBEDispatcherAPI" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xsi:type="xsd:string">https://tbe.taleo.net/NA12/ats/services/rpcrouter</return>
</ns1:getURLResponse>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

https://tbe.taleo.net/NA12/ats/services/rpcrouter является значением элемента ‹return>.

Чтобы иметь возможность использовать приведенную выше ссылку, очевидно, мне нужно, чтобы taleoURL был не нулевым.

На страницах 154–155 руководства по API Taleo указано, что getURL определяется как строка getURL(string orgCode)
http://tbe.taleo.net/products/TBE_API_Guide.pdf из
http://www.taleo.com/solutions/taleo-business-edition-web-integration-API

также
http://tbe.taleo.net/wsdl/DispatcherAPI.wsdl
http://tbe.taleo.net/wsdl/WebAPI.wsdl

Вот часть запроса/ответа DispatcherAPI.wsdl:

 <wsdl:message name="getURLRequest">
    <wsdl:part name="orgCode" type="xsd:string" />
  </wsdl:message>
  <wsdl:message name="getURLResponse">
    <wsdl:part name="getURLReturn" type="xsd:string" />
  </wsdl:message>

Думаю, я что-то упускаю.
Это тот случай, когда мое собственное невежество не приносит счастья.
MSDN и Google не помогли.

Спасибо... Джерри


person gerryLowry    schedule 13.01.2011    source источник


Ответы (1)


Я только начал работать с Taleo WebAPI, и у меня такая же проблема.

Обновление: я изменил ссылку со справочника службы VS2010 С# на веб-ссылку «старой школы», и тогда это сработало. Я все еще работаю над «настоящим» решением, но оно работает.

person Pat Osterday    schedule 14.01.2011
comment
Привет, Пэт, какая старая школьная веб-ссылка? Я думаю, что они могут использовать сонет, который меньше текущего. На странице 10 их руководства по API в формате .pdf есть неработающая ссылка на решение, отличное от .NET. Я надеялся получить некоторое представление, изучая это; Я жду, когда их человек, который поддерживает этот API, свяжется со мной. Кроме того, я отправил сообщение в раздел WCF forums.asp.net, но пока не получил там ответов. Смогли ли вы заставить WcfTestClient.exe работать с WcfTestClient.exe, используя ваше обходное решение? Пожалуйста, объясните, что вы подразумеваете под реальным решением. Спасибо / г. - person gerryLowry; 15.01.2011
comment
Если вы переходите к дополнительным настройкам в VS2010 при создании ссылки на службу, вы можете использовать кнопку «Добавить веб-ссылку...» в разделе «Совместимость». Это создает код веб-служб .NET 2.0. Мне не удалось заставить wcftestclient правильно работать с API Taleo. Они используют Java — Apache Axis 1.3 — для своих услуг. - person Pat Osterday; 17.01.2011
comment
спасибо, Пэт ... я попробую это ... под реальным решением вы имели в виду решение .NET 4? - person gerryLowry; 18.01.2011
comment
Да... Я надеялся использовать Справочник по услугам, но у меня не было времени возиться, так как мне нужно было сделать оценку для клиента сегодня! Да ладно... API немного запутанный, но я смог сделать некоторые базовые вызовы через .net, наблюдая за трафиком с помощью Fiddler. - person Pat Osterday; 18.01.2011
comment
спасибо за действительно полезное решение! жаль, что я нашел это только тогда, когда сам уже решил это таким же образом :) - person Igor V Savchenko; 19.01.2011
comment
Комментарий Пэта помог мне найти работоспособное решение. Я постараюсь опубликовать подробный ответ в будущем. Я нашел Fiddler2 чрезвычайно полезным. Мне также пришлось изучить WSDL, потому что документация от Taleo была неточной. - person gerryLowry; 14.02.2011
comment
Темпус беглец. =~ Прошло 5 лет, и у меня все еще не было времени опубликовать подробное решение (слишком много аллигаторов в болоте, которое я пытаюсь осушить). Поскольку комментарий Пэта помог мне найти работоспособное решение, справедливо отметить его как ответ. Пэт, извините, что это заняло так много времени, потому что эта тема была вне поля моего зрения, а значит, и не в моих мыслях. - person gerryLowry; 04.02.2016