Ошибка разбора в Fhir с DecimalType в WebLogic 12.1.2
У меня есть следующий заказ лекарств
<MedicationOrder xmlns="http://hl7.org/fhir">
<id value="medicationOrder-0"/>
<identifier>
<value value="843c3f2a-2704-11e5-b345-feff819cdc9f"/>
</identifier>
<dateWritten value="2015-03-09"/>
<status value="active"/>
<dateEnded value="2015-04-09"/>
<reasonCodeableConcept>
<coding>
<system value="http://hl7.org.co/fhir/vs/cie-10"/>
<code value="D300"/>
<display value="Malignant Tumor Internal the upper quadrant of the breast"/>
</coding>
</reasonCodeableConcept>
<medicationCodeableConcept>
<coding id="cum">
<system value="http://hl7.org.co/fhir/vs/cum"/>
<code value="16135"/>
<display value="ACETAMINOFEN 2/350 MG/MG"/>
</coding>
</medicationCodeableConcept>
<dosageInstruction>
<timing>
<repeat>
<boundsPeriod>
<start value="2015-03-09"/>
<end value="2015-04-09"/>
</boundsPeriod>
<period value="8"/>
<periodUnits value="d"/>
</repeat>
</timing>
</dosageInstruction></MedicationOrder>
Я анализирую предыдущий ресурс в Windows, у меня нет проблем там, но я пытаюсь выполнить синтаксический анализ в WebLogoc 12.1.2.0, показать следующее исключение:
java.lang.NullPointerException
at java.math.BigDecimal.<init>(BigDecimal.java:739)
at org.hl7.fhir.instance.model.DecimalType.<init>(DecimalType.java:83)
at org.hl7.fhir.instance.formats.XmlParser.parseDecimal(XmlParser.java:343)
at org.hl7.fhir.instance.formats.XmlParser.parseTimingTimingRepeatComponent(XmlParser.java:979)
at org.hl7.fhir.instance.formats.XmlParser.parseTiming(XmlParser.java:946)
at org.hl7.fhir.instance.formats.XmlParser.parseMedicationOrderMedicationOrderDosageInstructionComponent(XmlParser.java:6599)
at org.hl7.fhir.instance.formats.XmlParser.parseMedicationOrder(XmlParser.java:6572)
at org.hl7.fhir.instance.formats.XmlParser.parseResource(XmlParser.java:10125)
at org.hl7.fhir.instance.formats.XmlParserBase.parseResourceContained(XmlParserBase.java:294)
at org.hl7.fhir.instance.formats.XmlParser.parseDomainResourceContent(XmlParser.java:1212)
at org.hl7.fhir.instance.formats.XmlParser.parseComposition(XmlParser.java:2955)
at org.hl7.fhir.instance.formats.XmlParser.parseResource(XmlParser.java:10045)
at org.hl7.fhir.instance.formats.XmlParserBase.parse(XmlParserBase.java:94)
at org.hl7.fhir.instance.formats.XmlParserBase.parse(XmlParserBase.java:82)
at org.hl7.fhir.instance.formats.ParserBase.parse(ParserBase.java:56)
at org.hl7.fhir.instance.formats.ParserBase.parse(ParserBase.java:51)
в периоде тега значение равно 8, я не знаю причины, по которой это генерирует ноль.
исходный код Java выглядит следующим образом:
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response createMedicationOrder(String message) {
MedicationOrder medicationOrder;
try {
XmlParser xmlParser = new XmlParser();
medicationOrder = (MedicationOrder) xmlParser.parse(message); // Generate the error
} catch (Exception e) {
return Response.status(Status.NOT_ACCEPTABLE.ordinal()).entity(messageError).build();
}
Response res = createExternalOrder(medicationOrder);
return res;
}
Эта проблема не возникает в WebLogic 12.1.1.0, не может быть сделано с этим, потому что трассировка стека, представленная в библиотеке, не говорит о большой части проблемы.
Дополнительная информация:
Язык: Java 6 WebLogic: 12.1.2.0 ApiFhir: fhir-dstu2-1.0.1.7108.jar
2 ответа
Является ли переключение на HAPI Parser вариант для вас? У вас вполне могут быть причины не делать этого, но если это вариант, вы сможете использовать ту же модель данных с более проверенным в бою синтаксическим анализатором.
Проблема заключалась в загрузчике классов, в решении было установлено тег wls: предпочитать-web-inf-classes = true в weblogic.xml и поместить библиотеки в web-inf/lib.