Передача XML-ответа Taleo из класса клиента Java в функцию PL SQL - PullRequest
0 голосов
/ 16 октября 2018

Я сгенерировал клиентские классы Java с помощью axis2, которые используют веб-сервис Taleo SOAP и дают ответ, который я хочу передать функции PL SQL в виде строки XML.Проблема в том, что строка XML не передается в PL SQL, но я могу напечатать эту же строку в стандартном выводе Java.Самое смешное, что если я жестко закодирую ту же строку, что и возвращаемое значение, строка передается в функцию PL SQL.Кто-то поможет мне решить эту проблему.

Код для извлечения ответа из веб-службы:

FindPartialEntitiesResponse rsp = response.getFindPartialEntitiesResponse();
Entities entities = rsp.getEntities();

Для печати в стандартном выводе я делаю это:

String xmlString = rsp.toString() 
System.out.println(xmlString);

иВ стандартный вывод выводится следующее:

<xml-fragment xmlns:ns1="http://www.taleo.com/ws/tee800/2009/01/find" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<root:Entities pageIndex="1" pageCount="1" pagingSize="200" entityCount="1" 
xmlns:root="http://www.taleo.com/ws/tee800/2009/01/find" 
xmlns:e="http://www.taleo.com/ws/tee800/2009/01" 
xmlns="http://www.taleo.com/ws/integration/toolkit/2005/07">
<e:Entity xsi:type="e:Candidate">
  <e:Birthday>xxxxxxx</e:Birthday>
  <e:City>xxxx</e:City>
  <e:EmailAddress>xxxx@invalidemail.com</e:EmailAddress>
  <e:FirstName>xxxx</e:FirstName>
  <e:LastName>xxxx</e:LastName>
  <e:MiddleInitial>xxxx</e:MiddleInitial>
  <e:MobilePhone>xxxxxx</e:MobilePhone>
</e:Entity>
</root:Entities>
</xml-fragment>

Когда я возвращаю переменную xmlString в функцию PL SQL следующим образом:

public static java.lang.String exportCandidates() {
.
.
.
String xmlString = rsp.toString() 
System.out.println(xmlString);
return xmlString;
}

Я ничего не получаю в функции PL SQL

Когда я жестко кодирую XML в качестве возвращаемого значения следующим образом:

public static java.lang.String exportCandidates() {
.
.
.
return "<xml-fragment xmlns:ns1="http://www.taleo.com/ws/tee800/2009/01/find" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  <root:Entities pageIndex="1" pageCount="1" pagingSize="200" entityCount="2" xmlns:root="http://www.taleo.com/ws/tee800/2009/01/find" xmlns:e="http://www.taleo.com/ws/tee800/2009/01" xmlns="http://www.taleo.com/ws/integration/toolkit/2005/07">    <e:Entity xsi:type="e:Candidate">      <e:Birthday>xxxxxxx</e:Birthday>      <e:City>xxxx</e:City>      <e:EmailAddress>xxxx@invalidemail.com</e:EmailAddress>      <e:FirstName>xxxx</e:FirstName>      <e:LastName>xxxx</e:LastName>      <e:MiddleInitial>xxxx</e:MiddleInitial>      <e:MobilePhone>xxxxxx</e:MobilePhone>    </e:Entity>  </root:Entities></xml-fragment>";
}

Я получаю XML в PL SQL как возвращенный из Java

Функция PL SQL выглядит следующим образом

CREATE OR REPLACE FUNCTION taleowscall RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'TaleoWSClient.exportCandidates() return java.lang.String';

Кто-нибудь, пожалуйста, помогите демистифицировать это, я использую Oracle 12.1, которая работает под управлением JVM версии 1.6.Мои классы Java скомпилированы с той же версией Java 1.6

...