Rest-hook подписки в FHIR HTTP 404 не найден - PullRequest
0 голосов
/ 08 ноября 2019

Я создал простую конечную точку отдыха в java, используя джерси, как вы видите ниже:

  @Path("/study")
  public class CreateRestEndpoint {
  private static String endpoint;

  @PUT
  @Consumes("application/fhir+json") 
  @Produces(MediaType.APPLICATION_JSON)   
  public Response  getPut(IBaseResource list){
    System.out.println("UpdatedResource.: "+list);   
    return Response.status(200).build();
}


  @PUT
  public Response getTest(String str) {
    System.out.printf(str);
    return Response.status(200).build();
  }

Когда я использую почтальон и отправляю запрос PUT на jersey-servlet, все в порядке, и джерси-сервлет получает сообщение немедленно. Но я создал jersey-servlet для получения сообщения, которое отправляется сервером FHIR (мой сервер FHIR работает в Docker) через ресурс подписки. На самом деле, я пытаюсь использовать механизм подписки, чтобы получать уведомления при обновлении ресурса List.:

 {
  "resourceType": "Subscription",
  "id": "9",
  "meta": {
    "versionId": "2",
    "lastUpdated": "2019-11-08T09:05:33.366+00:00",
    "tag": [
      {
        "system": "http://hapifhir.io/fhir/StructureDefinition/subscription-matching-strategy",
        "code": "IN_MEMORY",
        "display": "In-memory"
      }
    ]
  },
  "status": "active",
  "reason": "Monitor Screening List",
  "criteria": "List?code=http://miracum.org/fhir/CodeSystem/screening-list|screening-recommendations",
  "channel": {
    "type": "rest-hook",
    "endpoint": "http://localhost:8080/notification/study",
    "payload": "application/fhir+json"
  }
}

Когда я изменяю ресурсы List в FHIR, я ожидал получить сообщение в jersey-сервлетено, к сожалению, я получаю следующую ошибку (когда я устанавливаю конечную точку для тестового перехвата, как примеры webhook.site, я могу получить сообщение со стороны FHIR):

fhir_1 |2019-11-08 18: 48: 40.688 [subscription-delivery-rest-hook-9-13] INFO cufjsmiSSUBS6 [SubscriptionDebugLogInterceptor.java:162] Доставка списка ресурсов / 4 / _history / 17 для подписки Subscription / 9 на каналТип RESTHOOK - ошибка: ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException: HTTP 404 не найден fhir_1 |Исключение в потоке "subscription-delivery-rest-hook-9-13" org.springframework.messaging.MessagingException: Сбой обработки полезной нагрузки подписки для подписки: Subscription / 9;вложенное исключение - ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException: HTTP 404 не найден, failedMessage=ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryJsonMessage@330c0fdb [myPca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage@38a1c8a2 [mySubscription=ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription@1d55d025 [myIdElement = подписка / 9, myStatus = АКТИВНЫЙ, myCriteriaString = Список? .......... ........................................ ..........

В чем проблема? Я много пробовал с разными параметрами, но решение не найдено.

1 Ответ

0 голосов
/ 11 ноября 2019

Я изменил @Path на @Path ("/ study / List / {var}"), но снова получил ту же ошибку. На самом деле мой сервер FHIR работает в Docker, и, вероятно, проблема будет в Docker. После настройки Proxy в Docker все нормально ... Вывод: мне пришлось изменить @path на @Path ("/ study / List / {var}") и установить Proxy в Docker.

...