Как обработать данные набора результатов вызова Java в Oracle Service Bus 11g? - PullRequest
0 голосов
/ 02 января 2019

У меня есть вызов Java в службе OSB, чтобы выполнить простой запрос на выборку из базы данных. Java-код преобразует этот набор результатов в формат XML, а затем возвращает этот XML-файл как string.but всякий раз, когда я пытаюсь использовать эти данные в преобразовании xquery в ответной переменной показано только следующее:

<con:java-content ref="jcid:2120886c:168088e4a35:-524c" xmlns:con="http://www.bea.com/wli/sb/context"/> .

я подозреваю, что OSB не может обработать строку xml.

код для преобразования результирующего набора в строку xml:

private static String toXML(ResultSet rs) throws SQLException {
    ResultSetMetaData rsmd = rs.getMetaData();
    int colCount = rsmd.getColumnCount();
    StringBuffer xml = new StringBuffer();
    xml.append("<ns1:OutputCollection xmlns:ns1=\"http://xmlns.oracle.com/namespace\">");

    while (rs.next()) {
        xml.append("<ns1:Output>");

        for (int i = 1; i <= colCount; i++) {
            String columnName = rsmd.getColumnName(i);
            Object value = rs.getObject(i);
            xml.append("<ns1:" + columnName + ">");

            if (value != null) {
                xml.append(value.toString().trim());
            }
            xml.append("</ns1:" + columnName + ">");
        }
        xml.append("</ns1:Output>");
    }

    xml.append("</ns1:OutputCollection>");


    return xml.toString();

}

1 Ответ

0 голосов
/ 04 января 2019

См. https://docs.oracle.com/cd/E13159_01/osb/docs10gr3/userguide/context.html#wp1106656.

OSB видит возвращаемое значение как ссылку на объект Java.Он не знает, что такое Java-строка или как с ней обращаться.Вам нужно будет преобразовать его в XmlObject или позволить java callout вернуть XmlObject.

...