在TomEE中配置Oracle XA数据源时出错

时间:2019-03-25 21:08:25

标签: java-ee tomee xa

我要在TomEE中设置2个新的数据源(用于2个不同的数据库),以利用其内置的JTA实现。我在tomee.xml文件中添加了以下两个资源

    XaDataSource myDatabase1XA     DataSourceCreator dbcp     最大闲置10     MaxActive 20     ValidationQuery SELECT 1 FROM DUAL     用户名数据库1     密码db1   

    网址jdbc:oracle:thin:@ db1:1521 / DB1   

<Resource id="myDatabase2" type="DataSource">
XaDataSource        myDatabase2XA 
DataSourceCreator   dbcp 
MaxIdle             10 
MaxActive           20 
ValidationQuery     SELECT 1 FROM DUAL 
Username            database2 
Password            db2 

    网址jdbc:oracle:thin:@ db2:1521 / DB2   

下面是我的简单Java代码:

公共课程测试{

@Resource
private DataSource myDatabase1XA;

  @Resource
  private DataSource myDatabase2XA;

  @Path("/test")
    @Produces(MediaType.TEXT_PLAIN)
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public String testDB() throws SQLException {

      Connection conn = myDatabase1XA.getConnection();
         PreparedStatement sql = conn.prepareStatement("INSERT into test (test1, test2) values (?, ?)");
          sql.setString(1, "test1");
          sql.setString(2, "test2");
          sql.execute();

          Connection conn2 = myDatabase2XA.getConnection();
             PreparedStatement sql2 = conn2.prepareStatement("INSERT into test2 (test1, test2) values (?, ?)");
              sql2.setString(1, "test1");
              sql2.setString(2, "test2");
              sql2.execute();

              return "OK";

  }

}

在Java代码上myDatabase1XA.getConnection();服务器抛出org.apache.cxf.interceptor.Fault:ORA-01017:无效的用户名/密码;登录被拒绝。

当我用非XA oracle驱动程序(例如oracle.jdbc.OracleDriver)替换资源中的类名时,使用相同的配置,我的代码可以正常工作。

我不确定我在这里到底想念什么。

0 个答案:

没有答案