如何将 JDBC 连接从 Tomcat 实现转换为 Jetty?
How to convert JDBC connection from Tomcat implementation to Jetty?
在我的项目中,早些时候我们使用 Tomcat 作为托管 JAX-RS REST-API 的容器。
它是使用 JDBC.
连接到 Oracle
为此,我使用 META-INF/context.xml 来指定我的连接详细信息:
<Resource name="jdbc/myconnmapping" factory="my.package.EncryptedDataSourceFactory"
auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@//my.oracle.server:1555/jobctlss1"
username="TOM" password="NQp5gwJdXs5KIts4OqiFN1qI/HhhRs9/eeO2lwVVL7dA+" maxActive="100" maxIdle="50"
maxWait="-1" />
我还在定义 factory="my.package.EncryptedDataSourceFactory"
参数的 <Resource>
标签中对密码进行了加密。
然后是我的连接 class 我正在使用他的代码连接到 oracle:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
ds = (DataSource)envContext.lookup("jdbc/myconnmapping");
Connection con = ds.getConnection();
Class.forName("oracle.jdbc.OracleDriver");
Statement stmt = this.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery(query);
直到我们将服务器更改为 Jetty 之前一切正常,当我在 Jetty 的网络应用程序中删除相同的 WAR 文件时,JDBC 出现连接错误。
如果有人能在 web.xml 中提供相同的 <resource-ref>
条目,那将会很有帮助,我可以在其中调用我的自定义 DataSourceFactory
class.
您很可能必须添加包含数据库连接元数据的 jetty-env.xml 文件。
在我的项目中,早些时候我们使用 Tomcat 作为托管 JAX-RS REST-API 的容器。
它是使用 JDBC.
连接到 Oracle
为此,我使用 META-INF/context.xml 来指定我的连接详细信息:
<Resource name="jdbc/myconnmapping" factory="my.package.EncryptedDataSourceFactory"
auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@//my.oracle.server:1555/jobctlss1"
username="TOM" password="NQp5gwJdXs5KIts4OqiFN1qI/HhhRs9/eeO2lwVVL7dA+" maxActive="100" maxIdle="50"
maxWait="-1" />
我还在定义 factory="my.package.EncryptedDataSourceFactory"
参数的 <Resource>
标签中对密码进行了加密。
然后是我的连接 class 我正在使用他的代码连接到 oracle:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
ds = (DataSource)envContext.lookup("jdbc/myconnmapping");
Connection con = ds.getConnection();
Class.forName("oracle.jdbc.OracleDriver");
Statement stmt = this.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery(query);
直到我们将服务器更改为 Jetty 之前一切正常,当我在 Jetty 的网络应用程序中删除相同的 WAR 文件时,JDBC 出现连接错误。
如果有人能在 web.xml 中提供相同的 <resource-ref>
条目,那将会很有帮助,我可以在其中调用我的自定义 DataSourceFactory
class.
您很可能必须添加包含数据库连接元数据的 jetty-env.xml 文件。