Я создал простую конечную точку отдыха в 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 = Список? .......... ........................................ ..........
В чем проблема? Я много пробовал с разными параметрами, но решение не найдено.