因此,我尝试在 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 如果我打开有问题的数据源的“监控”选项卡,表格是空的。到目前为止,我认为这是因为我遇到了连接错误,但无论如何我还是想在这里提一下。
答案1
最终能够找出问题的所在:
Weblogic Server 定义了一个极小的初始化 SQL 脚本,在创建数据源时执行该脚本来测试创建是否成功。实际上,正是这个测试 SQL 脚本试图访问一个不存在的用户。