我正在 wildfly8
上部署需要 java7
的项目。
我正在将项目从 jboss5 迁移到 wildfly8
所以jboss5
中的代码是
PreparedStatement wrappedStatement = (PreparedStatement) ((org.jboss.resource.adapter.jdbc.WrappedPreparedStatement)connection.prepareStatement(sql)).getUnderlyingStatement();
所以我改变了它...
PreparedStatement wrappedStatement = (PreparedStatement) ((org.jboss.jca.adapters.jdbc.jdk7.WrappedPreparedStatementJDK7)connection.prepareStatement(sql)).getUnderlyingStatement();
但现在我收到错误
org.jboss.jca.adapters.jdbc.jdk7.WrappedPreparedStatementJDK7 cannot be cast to org.jboss.jca.adapters.jdbc.jdk7.WrappedPreparedStatementJDK7
最佳答案
您的ear 项目中需要MANIFEST.MF 文件。 我把MANIFEST.MF文件包含
依赖项:org.jboss.ironjacamar.jdbcadapters、com.oracle7
换一个新行。将此文件保存在ear项目的METAINF中。
1)从项目的lib目录中删除ironjacamar-jdbc-..final.jar和ojdbc.jar。 2)这些jar已经存在于wildfly8的modules/文件夹中 (当然ojdbc*.jar是由用户配置的)。 3)依赖项:名称与 module.xml 文件中的名称相同,即
<module xmlns="urn:jboss:module:1.1" name="org.jboss.ironjacamar.jdbcadapters">
所以你必须输入模块的正确名称。
4)com.oracle7是wildfly8中ojdbc7.jar的驱动名称配置。 您可以将您在standalone.xml中编写的所需名称放入驱动程序标签中。
我认为这个错误与类加载 jar 有关。 但我遇到了新的错误 java.sql.SQLException:您无法在托管事务期间设置自动提交! 请帮助我。
关于java - JBoss 类型转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450819/