2013-12-11 7 views
1

Я выставил услугу REST с использованием <api> в wso2 esb. Но ответ не приходит. Служба REST написана в Apache Wink.WSO2 ESB - REST API - ответ не приходит

API

<api name="API_2" context="/hello" hostname="localhost" port="8080"> 
    <resource url-mapping="/name" methods="GET"> 
    <inSequence>  
     <log level="full"/> 
     <property name="messageType" value="text/plain" scope="transport" type="STRING"/>    
     <send> 
     <endpoint>        
      <address uri="http://localhost:8080/HelloService/rest/test/hello"/> 
     </endpoint> 
     </send> 
    </inSequence> 
    <outSequence> 
     <log level="full"/> 
     <send/> 
    </outSequence> 
    </resource> 
</api> 

журнал ESB

[2013-12-11 12:28:24,643] INFO - API Initializing API: API_2 
[2013-12-11 12:28:35,467] INFO - LogMediator To: /hello/name, MessageID: urn:uuid:52d2ddf1-301e-42e0-ac9d-ac4a57ac8c72, Direction: request 

ответ

1

Я думаю, что ваш адрес конечной точки не так, посмотрите, как вы должны повторять привет дважды. так как вы также приветствуете имя прокси, которое будет добавлено к URL-адресу.

попробовать <address uri="http://localhost:8080/HelloService/rest/test"/>

Также Вы можете проверить свои серверные работы по телефону «Uri + URL-отображение» в отдельном браузере

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

URL для вызова: http://localhost:8280/TestAPI/customerservice/customers/123

INFO - LogMediator To:/TestApi/сервисных служб/клиентов/123

<api xmlns="http://ws.apache.org/ns/synapse" name="TestAPI" context="/TestAPI"> 
    <resource methods="GET" url-mapping="/customerservice/customers/123"> 
     <inSequence> 
     <log/> 
     <send> 
      <endpoint> 
       <address uri="http://localhost:9764/jaxrs_basic/services/customers"/> 
      </endpoint> 
     </send> 
     </inSequence> 
     <outSequence> 
     <log/> 
     <send/> 
     </outSequence> 
    </resource> 
</api> 
+0

"HTTP: // локальный: 8080/HelloService/отдых/тест/привет" является фактическая реализация веб-сервиса RESTful. Когда запрос отправляется на «http: // localhost: 8280/hello/name», не работает ли он как прокси-сервер и перенаправляет запрос на фактическую реализацию? – user3049576

+0

ну, в вашем случае прокси отправит ваш запрос на адрес (http: // localhost: 8080/HelloService/rest/test/hello/), который является http: // localhost: 8080/HelloService/rest/test/hello/name, так что вы можете получить ответ в браузере для этого URL-адреса. – jayalalk

+0

Кроме того, если приведенный выше адресный URL-адрес работает, удалите имя хоста и порт из определения api, это проблема здесь. используйте мой пример , сообщите мне, решила ли ваша проблема этим. – jayalalk

Смежные вопросы