当主管运行进程时java缺少类,而不是作为www-data用户运行时缺少类

时间:2016-03-20 04:42:33

标签: java jdbc clojure leiningen supervisord

我已经制作了我的第一个clojure应用程序,我通过运行lein ring uberjar与leiningen一起构建了它。我可以在我的开发机器(fedora 23)上运行它,我可以在我的ubuntu生产机java -jar tomahawk.jar上运行它。我遵循了描述如何设置环境的数字海洋教程here。我的主管人员如下:

[program:tomahawk]
environment=TOMAHAWK_DB=$TOMAHAWK_DB
command=/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar tomahawk.jar
logfile=/tmp/supervisord.log
directory=/var/www/tomahawk/app
user=www-data
autostart=true
autorestart=true
startretries=3
redirect_stderr=true
stdout_logfile=/var/www/logs/tomahawk.app.log

然而,当通过nginx使用它时,我得到错误

2016-03-19 23:34:08.594:WARN:oejs.AbstractHttpConnection:/
java.sql.SQLException: No suitable driver found for jdbc:sqlserver:$
        at java.sql.DriverManager.getConnection(DriverManager.java:596)
        at java.sql.DriverManager.getConnection(DriverManager.java:187)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:255)

这来自com.microsoft.sqldbc4.jar文件。但是,我可以运行这个独立的jar文件,以及我可以运行sudo -u www-data env TOMAHAWK_DB=$TOMAHAWK_DB java -jar tomahawk.jar就好了。此外,在运行时,我可以通过nginx反向代理命中它。

我从2011年开始搜索并在主管邮件列表上找到了一封未收到回复的电子邮件。为什么我有时只会看到丢失的jar文件?

我已经尝试将它放在我的jvm的/usr/lib/jvm/.../lib/ext位置,捆绑在jar文件中,从Tomcat运行等等。我做了一个新贵脚本以及相同的结果。我不确定我可以尝试哪些其他途径,并且想知道是否有人有任何见解。

0 个答案:

没有答案