我正在用jdk 17测试payara 5,但是连接池有问题。
<jdbc-connection-pool max-pool-size="100" datasource-classname="oracle.jdbc.pool.OracleDataSource" steady-pool-size="1" validation-table-name="dual" name="oracle_thin_emp" is-connection-validation-required="true" res-type="javax.sql.DataSource">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="URL" value="jdbc:oracle:thin:@192.168.50.19:1521:TD"></property>
<property name="serverName" value="192.168.50.19"></property>
<property name="User" value="EMP"></property>
<property name="Password" value="EMP"></property>
<property name="PortNumber" value="1521"></property>
<property name="databaseName" value="TD"></property>
</jdbc-connection-pool>当我用jdk 8启动payara 5时,连接池正常工作,但是当我用jdk 17启动web服务器并从管理控制台启动ping时,我得到以下错误:Ping连接池oracle_thin_emp失败。类名错误或类路径未设置为: oracle.jdbc.pool.OracleDataSource请查看server.log以获得更多详细信息。
日志:
[Payara 5.2022.2] [SEVERE] [] [javax.enterprise.resource.resourceadapter.com.sun.gjc.util] [tid: _ThreadID=163 _ThreadName=admin-thread-pool::admin-listener(4)] [timeMillis: 1657657513953] [levelValue: 1000] [[
RAR5099 : Wrong class name or classpath for Datasource Object
java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleDataSource
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at com.sun.enterprise.loader.CurrentBeforeParentClassLoader.loadClass(CurrentBeforeParentClassLoader.java:83)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)详细信息:
发布于 2022-07-14 08:51:15
将驱动程序放在上面的一个目录中,<payara-home>/glassfish/domains/<domain>/lib。
原因似乎是从Java9中删除了扩展机制(system java.ext.dirs)。而且,PayaraServer5.192发行说明声明<payara-home>/glassfish/domains/<domain>/lib/ext不再放在类路径中。自5.192以来,除了Java8之外,PayaraServer还正式支持Java11,但它似乎是一个相应的响应。
https://stackoverflow.com/questions/72958557
复制相似问题