Replies: 1 comment 1 reply
-
Depending on the version of Mirth you are running you will probably need to do something similar to this discussion. Newer Mirth versions should read from the server-launcher-lib and add JARs found to the classpath. Otherwise you'll need to try going down the .vmoptions file path. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I changed my driver to custom one, because I had problems with SQLite one for inserting to database. I added cachejdbc.jar to "server-lib/databases" and to custom-lib and editet my dbdrivers.conf like this:
<drivers> <driver class="com.mysql.cj.jdbc.Driver" name="MySQL" template="jdbc:mysql:https://host:port/dbname" selectLimit="SELECT * FROM ? LIMIT 1" alternativeClasses="com.mysql.jdbc.Driver" /> <driver class="oracle.jdbc.driver.OracleDriver" name="Oracle" template="jdbc:oracle:thin:@host:port:dbname" selectLimit="SELECT * FROM ? WHERE ROWNUM < 2" /> <driver class="org.postgresql.Driver" name="PostgreSQL" template="jdbc:postgresql:https://host:port/dbname" selectLimit="SELECT * FROM ? LIMIT 1" /> <driver class="net.sourceforge.jtds.jdbc.Driver" name="SQL Server/Sybase (jTDS)" template="jdbc:jtds:sqlserver:https://host:port/dbname" selectLimit="SELECT TOP 1 * FROM ?" /> <driver class="com.microsoft.sqlserver.jdbc.SQLServerDriver" name="Microsoft SQL Server" template="jdbc:sqlserver:https://host:port;databaseName=dbname" selectLimit="SELECT TOP 1 * FROM ?" /> <driver class="org.sqlite.JDBC" name="SQLite" template="jdbc:sqlite:dbfile.db" selectLimit="SELECT * FROM ? LIMIT 1" /> <driver class="com.intersys.jdbc.CacheDriver" name="CacheDriver" template="jdbc:CacheDriver:https://link/db" /> </drivers>
Now I'm getting this error:
java.lang.ClassNotFoundException: java.sql.Driver at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:514) at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:422) at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:416) at java.base/java.security.AccessController.doPrivileged(AccessController.java:691) at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:415) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at com.mirth.connect.connectors.jdbc.CustomDriver.<init>(CustomDriver.java:40) at com.mirth.connect.server.userutil.DatabaseConnectionFactory.initializeDriverAndGetInfo(DatabaseConnectionFactory.java:145) at com.mirth.connect.server.userutil.DatabaseConnectionFactory.getCustomDriverInfo(DatabaseConnectionFactory.java:167) at com.mirth.connect.server.userutil.DatabaseConnectionFactory.createDatabaseConnection(DatabaseConnectionFactory.java:54) at jdk.internal.reflect.GeneratedMethodAccessor105.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) 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:1669) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:1009) 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:3545) at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:121) at com.mirth.connect.server.util.javascript.JavaScriptTask.executeScript(JavaScriptTask.java:150) at com.mirth.connect.server.util.javascript.JavaScriptUtil.executeScript(JavaScriptUtil.java:542) at com.mirth.connect.connectors.jdbc.DatabaseDispatcherScript$DatabaseDispatcherTask.doCall(DatabaseDispatcherScript.java:120) at com.mirth.connect.server.util.javascript.JavaScriptTask.call(JavaScriptTask.java:113) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832)
This is my code in destination database writer:
`var dbConn;
var driver;
var result;
try {
driver = new com.mirth.connect.connectors.jdbc.CustomDriver(java.lang.Thread.currentThread().getContextClassLoader(), 'com.intersys.jdbc.CacheDriver');
dbConn = DatabaseConnectionFactory.createDatabaseConnection('com.intersys.jdbc.CacheDriver','jdbc:CacheDriver:https://D:/documents/MESI/mesi-integration/mesi-integration.db','','');
/*logger.info($('otherDataMeasurements'));
logger.info($('integration_id'));
logger.info($('id'));
logger.info($('serial_number'));
logger.info($('tablet_group_id'));
logger.info($('application_id')); */
result = dbConn.executeUpdate("INSERT INTO Tasks (Id, VisitNumber, ActivityId, IntegrationServiceId, TabletGroupId, TaskType, Status, PatientId, FirstName, LastName, BirthDate, Gender, Race, EmailAddress, PhoneNumber, AddressStreet, AddressPostalCode, AddressCountry, ApplicationId, DoctorFirstName, DoctorLastName, AdditionalFields, TabletAcceptedBy, RequestContent, RequestDate, DeletedAt, AddressCity) VALUES ("
+ $('id') + "','"
+ $('visit_num') + "','"
+ '80a1c95c-6480-47e7-ab44-c35cf8328b3e' + "','"
+ $('integration_id') + "','"
+ $('patient_id') + "','"
+ $('given_name') + "','"
+ $('family_name') + "','"
+ $('dateBirth') + "','"
+ $('gender') + "','"
+ $('race_code') + "','"
+ $('email') + "','"
+ $('tel_number') + "','"
+ $('street_address') + "','"
+ 2 + "','"
+ $('postal_code') + "','"
+ $('country') + "','"
+ $('attending_doc_given_name') + "','"
+ $('attending_doc_family_name') + "','"
+ $('testestestest') + "','"
+ $('OrderMessage') + "','"
+ $('request_date') + "','"
+ 2 + "','"
+ $('serial_number') + "','"
+ $('tablet_group_id') + "','"
+ 0 + "','"
+ $('city') + ")"
);
return 'Result of channel: ' + result;
} finally {
if (dbConn) {
dbConn.close();
}
}`
I can see my driver but it still doesn't work.
![image](https://user-images.githubusercontent.com/47832737/136204886-bca7e4d7-f196-4111-90f7-ca73dd1ed4da.png)
Beta Was this translation helpful? Give feedback.
All reactions