我正在使用 Confluence Script Plugin 在 Confluence 中编写 Jython 宏。我有一些代码在升级到 Confluence 和插件后最近停止工作。我已经尝试了在 SO 和网络上找到的各种可能的解决方案,但没有任何运气。
我正在尝试连接到 Oracle 数据库以查询一些值。这是我的代码:
import sys
from oracle.jdbc.driver import OracleDriver
from java.sql import DriverManager, SQLRecoverableException
def connect(user, pw, sid, host, port):
connection = None
DriverManager.registerDriver(OracleDriver())
try:
connection = DriverManager.getConnection("jdbc:oracle:thin:@"+host+":"+port+":"+sid, user, pw)
except SQLRecoverableException, e:
print 'ERROR: Cannot connect to database %s %s %s: %s.' % (host, port, sid, e)
except:
print 'ERROR: Cannot connect to database %s %s %s: %s.' % (host, port, sid, sys.exc_info()[1])
return connection
conn = connect(db_user, db_pw, db_sid, db_host, db_port)
运行此程序会导致以下错误(注意:删除了真实主机名、端口和 sid):
ERROR: Cannot connect to database host port sid: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@host:port:sid.
这个错误让我觉得 ojdbc6.jar 找不到或不在正确的目录中。以防万一,我明确地将它添加到类路径中。这仍然没有奏效。将其添加到类路径后,我通过检查进程 args 验证了类路径已正确设置,并且我看到 ojdbc6.jar 正在 catalina.out 中处理。(注意:实际安装路径已删除)
进程参数:
argv[21]: -classpath
argv[22]: :<install_path>/atlassian-confluence-4.3.1/lib/ojdbc6.jar:<install_path>/atlassian-confluence-4.3.1/bin/bootstrap.jar
catalina.out:
*sys-package-mgr*: processing new jar, '<install_path>/atlassian-confluence-4.3.1/lib/ojdbc6.jar'
我还验证了我们当前使用的是 jdk1.6.0_33,因此 ojdbc6.jar 应该是正确的瘦客户端。有谁知道可能导致错误的原因是什么?
- JDK:Sun 1.6.0_33-b03
- Jython:2.5.2
- 汇合:4.3.1
- 脚本插件:4.1.0
- 操作系统:SunOS 5.10
- 应用服务器:Apache Tomcat/6.0.32