我有下列药物订单
<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,我不知道reazon这会生成null。
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中不会出现此问题,无法对其进行此操作,因为库中显示的堆栈跟踪并未说明问题。
更多信息:
Laguaje:Java 6 WebLogic:12.1.2.0 ApiFhir:fhir-dstu2-1.0.1.7108.jar
答案 0 :(得分:0)
是否可以选择HAPI的Parser作为选项?您可能有理由不这样做,但如果它是一个选项,您将能够使用相同的数据模型与经过实战考验的解析器。
答案 1 :(得分:0)
问题是类加载器,解决方案是在weblogic.xml中设置标签wls:prefer-web-inf-classes = true并将库放在web-inf / lib上。