WSO2 EI читает json из реестра - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть этот API

<api xmlns="http://ws.apache.org/ns/synapse" name="EosPlaces" context="/eosplaces"><resource methods="GET" uri-template="/comuni">
  <inSequence>
     <property name="comuni" expression="get-property('registry', 'gov:/eos/common/json/comuni.json')" scope="axis2" type="STRING"/>
     <payloadFactory media-type="json">
        <format>$1</format>
        <args>
           <arg evaluator="xml" expression="$ctx:comuni"/>
        </args>
     </payloadFactory>
     <property name="messageType" value="application/json" scope="axis2"/>
     <respond/>
  </inSequence></resource></api>

, и это json, хранящийся в реестре с приложением типа носителя / json:

{
    "comuni": [{
            "Denominazione": "Agliè",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A074"
        },
        {
            "Denominazione": "Airasca",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A109"
        },
        {
            "Denominazione": "Ala di Stura",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A117"
        },
        {
            "Denominazione": "Albiano d'Ivrea",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A157"
        },
        {
            "Denominazione": "Almese",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A218"
        },
        {
            "Denominazione": "Alpette",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A221"
        },
        {
            "Denominazione": "Alpignano",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A222"
        },
        {
            "Denominazione": "Andezeno",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A275"
        },
        {
            "Denominazione": "Andrate",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A282"
        },
        {
            "Denominazione": "Angrogna",
            "Regione": "Piemonte",
            "Provincia": "Torino",
            "SiglaProv": "TO",
            "Belfiore": "A295"
        }
    ]
}

Я хотел бы прочитать json и вывести его при вызове API, но ответ:

<Empty JSON content>

, а необработанный: "HTTP / 1.1 200 OK Хост: 192.168.0.191:8280 Accept-Encoding: gzip, deflate Тип содержимого: application / json; charset = UTF-8 Дата: среда, 08 апреля 2020 г., 12:00:19 GMT Передача-кодировка: чанкованная Соединение: Keep-A1live "

{}

Спасибо

Обновление: если я регистрирую свойство, которое выбирает json из реестра, это то, что я вижу в журнале

=

Ответы [ 2 ]

3 голосов
/ 08 апреля 2020

Это будет работать, только если у вас есть медиа-тип файла реестра в виде text / plain. Это потому, что когда вы используете его как приложение / json, оно кодирует файл другим способом.

0 голосов
/ 09 апреля 2020

Хорошо, теперь это работает хорошо, но вывод, даже если это действительный json, содержит управляющие символы, как указано ниже:

{
"text": "{\n\t\"comuni\": [{\n\t\t\t\"Denominazione\": \"Agliè\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A074\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Airasca\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A109\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Ala di Stura\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A117\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Albiano d'Ivrea\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A157\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Almese\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A218\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Alpette\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A221\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Alpignano\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A222\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Andezeno\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A275\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Andrate\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A282\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Angrogna\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A295\"\n\t\t}\n\t]\n}"}

Как я могу настроить его?

...