Closed phommata closed 1 month ago
Try this: Create a completely new folder somewhere, for example "custom-oracle-driver". On the Settings -> Resources tab, create a new Directory resource pointing to that folder. After saving and refreshing, you should see your JAR appear in the table below. Edit your channel and go into Summary -> Set Dependencies -> Library Resources. Select the connector you want, and make sure only your new resource is checked.
Now, your connector or JavaScript should be able to create database connections using the specific version of the JAR you included.
Describe the bug
Error parsing the JSON appointment resource using Hapi FHIR 7.2.0, I get Mirth
java.lang.LinkageError
loadingjavax.xml.namespace.QName
since a different class with same nameQName
in modulejava.xml
was loaded by 'bootstrap'.To Reproduce Setup steps
Steps to reproduce the behavior:
` // Create a HAPI FHIR context for FHIR var context = new Packages.ca.uhn.fhir.context.FhirContext.forR4();
// Instantiate a new parser var parser = ctx.newJsonParser();
var input = { { "resourceType" : "Appointment", "status" : "booked" };
// Parse it var appointment = parser.parseResource(Packages.org.hl7.fhir.r4.model.Appointment, JSON.stringify(input));
ERROR (com.mirth.connect.connectors.js.JavaScriptDispatcher:305): Error evaluating JavaScript Writer (JavaScript Writer "Parsing Appointment" on channel 580496cb-4e73-4584-b43b-2d157216edf7). java.lang.LinkageError: loader constraint violation: loader com.mirth.connect.server.util.ChildFirstURLClassLoader @28d3c841 wants to load class javax.xml.namespace.QName. A different class with the same name was previously loaded by 'bootstrap'. (javax.xml.namespace.QName is in module java.xml of loader 'bootstrap') at com.ctc.wstx.compat.QNameCreator.create(QNameCreator.java:52) at com.ctc.wstx.sr.InputElementStack.getCurrentElementName(InputElementStack.java:832) at com.ctc.wstx.sr.BasicStreamReader.getName(BasicStreamReader.java:786) at com.ctc.wstx.sr.BasicStreamReader.withStartElement(BasicStreamReader.java:1735) at com.ctc.wstx.evt.DefaultEventAllocator.allocate(DefaultEventAllocator.java:185) at com.ctc.wstx.evt.WstxEventReader.createNextEvent(WstxEventReader.java:463) at com.ctc.wstx.evt.WstxEventReader.nextEvent(WstxEventReader.java:283) at ca.uhn.fhir.util.XmlUtil.parse(XmlUtil.java:1839) at ca.uhn.fhir.model.primitive.XhtmlDt.parse(XhtmlDt.java:82) at ca.uhn.fhir.model.primitive.XhtmlDt.parse(XhtmlDt.java:40) at ca.uhn.fhir.model.api.BasePrimitive.setValueAsString(BasePrimitive.java:111) at ca.uhn.fhir.model.primitive.XhtmlDt.setValueAsString(XhtmlDt.java:130) at ca.uhn.fhir.parser.ParserState$XhtmlState.attributeValue(ParserState.java:1693) at ca.uhn.fhir.parser.ParserState.attributeValue(ParserState.java:112) at ca.uhn.fhir.parser.JsonParser.parseChildren(JsonParser.java:1452) at ca.uhn.fhir.parser.JsonParser.parseChildren(JsonParser.java:1339) at ca.uhn.fhir.parser.JsonParser.parseChildren(JsonParser.java:1439) at ca.uhn.fhir.parser.JsonParser.parseChildren(JsonParser.java:1339) at ca.uhn.fhir.parser.JsonParser.doParseResource(JsonParser.java:262) at ca.uhn.fhir.parser.JsonParser.doParseResource(JsonParser.java:242) at ca.uhn.fhir.parser.BaseParser.parseResource(BaseParser.java:683) at ca.uhn.fhir.parser.BaseParser.parseResource(BaseParser.java:738) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:138) at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:226) at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1692) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:1013) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:412) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3578) at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:121) at com.mirth.connect.server.util.javascript.JavaScriptTask.executeScript(JavaScriptTask.java:151) at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:261) at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:221) at com.mirth.connect.server.util.javascript.JavaScriptTask.call(JavaScriptTask.java:114) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:842) `
Expected behavior I expect the JSON parser to successfully load and parse the JSON string.
Actual behavior Mirth
java.lang.LinkageError
loadingjavax.xml.namespace.QName
since a different class with same nameQName
in modulejava.xml
was loaded by 'bootstrap'.Screenshots None
Environment (please complete the following information):
Workaround(s) I can use vanilla JavaScript.
Additional context I am able to successfully run the Hapi HL7 examples.