使用 XPages 休息服务连接到 mysql 时出错

Error connecting to mysql using XPages rest service

尝试通过 xpages rest 服务连接到 mysql 数据库时出现错误 500 "internal Error"。 Mysql 版本 8,Domino 服务器 9.0.1 FP8。 使用 mysql 中的 JDBC jar 文件。 谁能帮我解决错误。

错误:

code    500
text    "Internal Error"
message "Error while reading the relational data"
type    "text"
data    "com.ibm.xsp.FacesExceptionEx: Error while reading the relational data
        at com.ibm.xsp.extlib.relational.jdbc.services.content.JsonJdbcQueryContent.writeJdbcQuery(JsonJdbcQueryContent.java:269)
        at com.ibm.xsp.extlib.relational.jdbc.rest.query.RestJdbcQueryJsonService.renderServiceJSONGet(RestJdbcQueryJsonService.java:228)
        at com.ibm.xsp.extlib.relational.jdbc.rest.query.RestJdbcQueryJsonService.renderService(RestJdbcQueryJsonService.java:66)
        at com.ibm.domino.services.HttpServiceEngine.processRequest(HttpServiceEngine.java:168)
        at com.ibm.xsp.extlib.component.rest.UIBaseRestService._processAjaxRequest(UIBaseRestService.java:257)
        at com.ibm.xsp.extlib.component.rest.UIBaseRestService.processAjaxRequest(UIBaseRestService.java:234)
        at com.ibm.xsp.util.AjaxUtilEx.renderAjaxPartialLifecycle(AjaxUtilEx.java:206)
        at com.ibm.xsp.webapp.FacesServletEx.renderAjaxPartial(FacesServletEx.java:249)
        at com.ibm.xsp.webapp.FacesServletEx.serviceAjaxPartialView(FacesServletEx.java:200)
        at com.ibm.xsp.webapp.FacesServletEx.serviceAjaxPartialViewSync(FacesServletEx.java:169)
        at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:155)
        at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:159)
        at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
        at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
        at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:588)
        at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
        at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:865)
        at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:808)
        at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:577)
        at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
        at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
        at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
        at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
        at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
        at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
    Caused by: java.sql.SQLException
        at com.ibm.xsp.extlib.relational.util.JdbcUtil.createNamedConnection(JdbcUtil.java:87)
        at com.ibm.xsp.extlib.relational.jdbc.services.content.JsonJdbcQueryContent.findConnection(JsonJdbcQueryContent.java:103)
        at com.ibm.xsp.extlib.relational.jdbc.services.content.JsonJdbcQueryContent.writeJdbcQuery(JsonJdbcQueryContent.java:139)
        ... 24 more
    Caused by: javax.naming.NameNotFoundException: comp/env/jdbc/mysqlActor
        at com.ibm.pvc.jndi.internal.provider.java.FlatMappingContext.lookup(FlatMappingContext.java:118)
        at com.ibm.pvc.jndi.internal.provider.java.FlatMappingContext.lookup(FlatMappingContext.java:140)
        at javax.naming.InitialContext.lookup(InitialContext.java:428)
        at com.ibm.xsp.extlib.relational.util.JdbcUtil.createNamedConnection(JdbcUtil.java:81)
        ... 26 more"

xpage xml:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:label
        value="MySQLConnectionTest"
        id="label1">
    </xp:label>
    <xp:br></xp:br>
    <xe:restService
        id="restService1"
        pathInfo="actorData">
        <xe:this.service>
            <xe:jdbcQueryJsonService
                contentType="application/json"
                sqlTable="sakila.actor"
                connectionName="mysqlActor">
            </xe:jdbcQueryJsonService>
        </xe:this.service>
    </xe:restService>

</xp:view>

<?xml version ="1.0" encoding="UTF-8"?>
<jdbc type="dbcp">
    <driver>com.mysql.jdbc.driver</driver>
    <url>jdbc:mysql://9900w7.int.natc-ht.com:3306;databaseName=sakila</url>
    <user>root</user>
    <password>password</password>
    <dbcp>
        <maxTotal>5</maxTotal>
        <maxIdle>5</maxIdle>
    </dbcp>
</jdbc> 

这是 jdbc 配置文件和驱动程序位置的组合。对于 mysql,配置需要像下面的示例一样配置。感谢 Henrik 加入写作轨道。

<jdbc type="simple">
    <driver>com.mysql.jdbc.Driver</driver>
    <url>jdbc:mysql://9900w7.int.natc-ht.com</url>
    <port>3306</port>
    <databaseName>weather</databaseName>
    <user>root</user>
    <password>password</password>
    <simple>
        <minPoolSize>10</minPoolSize>
        <maxPoolSize>20</maxPoolSize>
    </simple>
</jdbc>