所以我试图在 Weblogic Server (12c) 中设置一个新的数据源,但我一遍又一遍地遇到同样的错误:
java.sql.SQLException: ORA-01435: user does not exist
这看起来很简单,但据我所知,事实并非如此。
- 通过使用外部工具(Oracle SQLDeveloper)连接到数据库,我多次检查了数据库属性。
- 我尝试与架构所有者和第二个用户(为 Web 应用程序创建)连接,他们都不能在 WLS 数据源中工作(但两者都在 SQLDeveloper 中完美工作)。
- 同一个 WLS 实例可以毫无问题地连接到不同的 Oracle 数据源 - 只是新的数据源会出现问题。(此外,工作数据源和非工作数据源都具有与其目标相同的托管服务器。)
如果我输入完全相同的数据库属性(主机、端口、驱动程序、密码),但将用户名更改为不存在的用户名,则会收到不同的错误:
ORA-01017: invalid username/password; logon denied
所以这告诉我,用户确实存在,但 WLS 仍然收到 ORA-01435 错误。
有谁知道问题可能是什么?
PS 如果我打开有问题的数据源的“监控”选项卡,则该表为空。到目前为止,我认为这是因为我遇到了连接错误,但我想我还是会在这里提到它。
最终能够找出问题所在:
Weblogic Server 定义了一个很小的 init SQL scriptlet,它在数据源创建时执行以测试创建是否成功。实际上是这个测试 SQL 脚本,它试图访问一个不存在的用户。