我正在尝试使用 worklight 6.1.0 连接到本地 LAN 中的 DB2,并触发 Select Query 以查找数据(如果存在)。但我得到以下错误:
{
"errors": [
"Runtime: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DATABASE_NAME.REGISTRATION, DRIVER=3.58.82.\nPerformed query:\nSELECT * FROM DATABASE_NAME.registration where DATABASE_NAME.registration.Mob_No = ?"
],
"info": [
],
"isSuccessful": false,
"warnings": [
]
}
我的 SQL 适配器配置如下所示:
<connectionPolicy xsi:type="sql:SQLConnectionPolicy">
<!-- Example for using a JNDI data source, replace with actual data source name -->
<!-- <dataSourceJNDIName>java:/data-source-jndi-name</dataSourceJNDIName> -->
<!-- Example for using MySQL connector, do not forget to put the MySQL connector library in the project's lib folder -->
<dataSourceDefinition>
<driverClass>com.ibm.db2.jcc.DB2Driver</driverClass>
<url>jdbc:db2://172.21.11.129:50000/MOBILEDB</url>
<user>db2admin</user>
<password>Newuser123</password>
</dataSourceDefinition>
</connectionPolicy>
具有过程的 js 文件如下所示:
var selectStatement1 = "SELECT * FROM DATABASE_NAME.registration where DATABASE_NAME.registration.Mob_No = ?";
var procStmt1 = WL.Server.createSQLStatement(selectStatement1);
function registrationLookup(mobile){
WL.Logger.debug("Inside registrationLookup");
return WL.Server.invokeSQLStatement(
{
preparedStatement : procStmt1,
parameters : [mobile]
}
);
}
我做了一些关于将 DB2 与 Worklight 连接起来的研究,并了解到我需要将以下数据放入 worklight.properties 文件中。
wl.db.username=db2admin
wl.db.type=DB2
wl.db.password=Newuser123
wl.db.driver=com.ibm.db2.jcc.DB2Driver
但添加后,我无法部署适配器,并且错误提示“db2admin”不存在。所以我在当前问题的背景下跳过了这一步。但是在经历了我没有添加这个 worklight.properties 数据的错误之后,在我看来,根据http://www-01.ibm.com/support/docview.wss?uid= '对象不存在' swg21613531或用户表不存在。任何建议都会有所帮助。 笔记:
- 我的 IP 地址是 172.21.11.125,我从那里为 DB2 调用适配器。
- DB2 实例在 172.21.11.129 @ 50000 上运行。
- 已经在 server/lib 中添加了 db2jcc_license_cu_9.5.jar 和 db2jcc_9.5.jar。它的名称附加了“_9.5”,我已经从两个 jar 中删除了它,只保留了 db2jcc_license_cu.jar 和 db2jcc.jar。