Я начинаю работать над интеграцией веб-сервиса Bullhorn SOAP с использованием Coldfusion 8. У меня проблемы с аутентификацией - получение сеанса.
Я пытался сделать это, как кто-то сделал здесь :
<cfset session_arg = structnew()>
<cfset session_arg.username = 'xxxxxx'>
<cfset session_arg.password = 'xxxxxxx'>
<cfset session_arg.apiKey = 'xxxxxxxxxxxxxxxxxxxxxxx'>
<cfinvoke
webservice = "https://api.bullhornstaffing.com/webservices-2.0/?wsdl"
method = "startSession"
returnvariable = "bhSession"
argumentcollection = "#session_arg#">
</cfinvoke>
Я заменил конечную точку 1.1 конечной точкой веб-службы 2.0.
startSession () работает нормально, но я должен получить значение сеанса с помощью getSession (), но он не доступен в возвращаемом объекте - это функция из родительского класса.
![enter image description here](https://i.stack.imgur.com/ZbVYz.png)
Я пытался использовать bhSession.super.getSession (), но это тоже не сработало.
Буду благодарен за любые предложения о том, как подойти к этой интеграции:
я должен полностью покинуть cfinvoke / createObject и продолжить
CFHTTP а изготовление мыльных конвертов от руки?
или, может быть, использовать какую-то библиотеку Java для интеграции?
или, может быть, использовать версию API 1.1?
SOAP-ответ, который я получаю с помощью soapUI:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:startSessionResponse xmlns:ns2="http://apiservice.bullhorn.com/">
<return>
<session>THE_SESSION_VAR</session>
<corporationId>COPRPORATION_ID</corporationId>
<userId>USER_ID</userId>
</return>
</ns2:startSessionResponse>
</S:Body>
</S:Envelope>
Там все хорошо. Кажется, что ручное решение было бы правильным решением.
Спасибо за вашу помощь.
Lucas