Ошибка разбора в 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.

Другие вопросы по тегам