我正在编写一个REST服务来从HL7 FHIR客户端使用XML。 HL7 FHIR标准规定内容类型必须为:application / xml + fhir 。
以下是代码段:
@Path("/DecisionSupportServiceModule")
public class DSSModuleResource {
private String namingProviderURL = null;
private static final String OUTPUT_PARAMETERS1 = "outputParameters1";
private final String CONSUMER_ID = "CONSUMER_ID";
public DSSModuleResource() {
namingProviderURL = FHIRMiscHelper.getNamingProviderURL();
}
@POST()
@Path("/{id}/$evaluate")
@Consumes("application/xml+fhir")
@Produces("application/xml+fhir")
public GuidanceResponse evaluate(@PathParam("id") String km_name,
Parameters parameters) {
当我向服务发送请求时,我收到此错误:
14:50:39,309 WARN [org.jboss.resteasy.core.SynchronousDispatcher]执行POST / DecisionSupportServiceModule / CDCImmunizations / $ evaluate失败:org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException:无法执行找到媒体类型的JAXBContextFinder:application / xml + fhir
但是当我更改代码以使用Content-Type=application/xml
时,一切都按预期工作。
为了尝试解决这个问题,我实现了一个自定义的MessageBodyReader / Writer,以便为客户端来回传送mapherhal / unmarshal JAX-B消息。使用“application / xml + fhir”时,这也会失败并出现相同的错误。所以我被卡住了。有没有人见过这个问题,如果有的话有解决方案?谢谢你的帮助。
我的环境如下: