2016-07-11 3 views
0

Это сценарий, я пытаюсь добиться в Play 2.5.x для Scala (все запросы и ответы Json):Экспедиторские HTTP запросов в Play для Scala

  1. браузер отправляет запрос HTTP на url1.
  2. URL1 обогащает Json, который он получает с некоторыми данными, и пересылает весь запрос URL2.
  3. URL2 отвечает на браузер.

В последнем пункте, я не уверен, что URL2 может отправить его обратно в браузер или должен сделать это через URL1 (я считаю, что это последний).

Это запрос в url1 (URL2 простой запрос/ответ):

val request: WSRequest = ws.url("/url2") 
    val request2: WSRequest = request.withHeaders("Accept" -> "application/json") 
    val data = Json.obj(
     "aaa" -> some_data1, 
     "bbb" -> some_data2 
    ) 
    val futureResponse: Future[JsValue] = request2.post(data).map { 
      response => response.json 
    } 

Когда я посылаю будущее я получаю это исключение:

Execution exception[[NullPointerException: scheme]] 

Как это исправить?

ответ

1

Ключ в имени функции - это ws.url, а не ws.uri. Вам нужно указать полный путь. Вы можете использовать ws.url("http://localhost:9000/url2") с настраиваемыми элементами, если это необходимо, например, схема и порт на основе вашей конфигурации.

+0

Почему я получаю исключение нулевой указатель? – ps0604

+0

Потому что вы не указали схему (например, 'http: //') –

+0

Спасибо, я внес изменения, которые вы предложили, и исключение исчезло. Однако URL2 не получает запрос. Любые идеи, где искать? – ps0604

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