(本文档仅供参考)
问题现象
smartbi部署在Tomcat8中,请问smartbi如何使用jndi方式连接数据源?
解决方案
1、用文本编辑器打开tomcat\conf目录中的server.xml文件并在如下红框所示位置中添加如下配置:
<Context path="/smartbi" reloadable="false" docBase="F:/Smartbi/Tomcat/apps/smartbi"> <Resource name="jdbc/repo" auth="Container" type="javax.sql.DataSource" username="admin" password="admin" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:6688/smartbi_smartbix_v10_5?characterEncoding=GBK" maxTotal="8" maxIdle="4"/> </Context>
对上述内容可进行修改配置项说明如下:
配置项及内容 | 说明 |
---|---|
<Context path="/smartbi" reloadable="false" docBase="F:/Smartbi/Tomcat/apps/smartbi"> | 此处建议只修改docBase中的路径,其它保持默认即可,此处路径为war包存放的位置,请根据实际部署情况进行修改。 配置原因:配置了server.xml后如webapps目录下仍有war包,会启动两次,因此需要指定新的启动目录。 注意事项:1、需要将webapps下的war包删除,解压后smartbi文件夹也要一并移除; 2、此处是新建名为apps的文件夹存放解压后的war包,因war包不会自动解压,因此请移动到新的目录后手动解压。 |
Resource name="jdbc/repo" | jdbc/repo:此处的名称可以自定义。 |
username="admin" | admin:此处对应需要连接的数据库用户名。 |
password="admin" | admin:此处对应需要连接的数据库用户名的密码。 |
driverClassName="com.mysql.jdbc.Driver" | com.mysql.jdbc.Driver:为对应数据库的JDBC链接驱动的字符串。 |
url="jdbc:mysql://localhost:6688/smartbi_smartbix_v10_5?characterEncoding=GBK" | jdbc:mysql://localhost:6688/smartbi_smartbix_v10_5?characterEncoding=GBK:url 值为 JDBC 链接字符串,请根据实际情况填写 |
2、修改smartbi.war\WEB-INF\web.xml,需增加如下配置项:
<resource-ref> <description> aaa </description> <res-ref-name> jdbc/repo </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref>
对上述可进行修改内容说明如下:
配置项 | 说明 |
---|---|
<description>aaa</description> | aaa可自定义。 |
<res-ref-name> jdbc/repo</res-ref-name> | jdbc/repo对应1中的填写的Resource name。 |
<res-type> javax.sql.DataSource </res-type> | 此处不可自定义,请勿修改。 |
<res-auth> Container </res-auth> | 此处不可自定义,请勿修改。 |
3、将数据库驱动放tomcat的lib下。
如下图:
4、配置数据库
(1)作为知识库
①修改smartbi-config配置,此处配置对应的数据源中的连接字符串:
<server-name>JNDI:java:comp/env/jdbc/repo</server-name>
对上述可进行修改内容说明如下:
配置项 | 说明 |
---|---|
<server-name>JNDI:java:comp/env/jdbc/repo</server-name> | jdbc/repo对应2中的Resource name里填写的信息。 |
②配置完毕重启应用服务,配置config界面中的数据源连接:
驱动程序类型部分仍然选择对应的数据库类型。
连接字符串改为3中配置的即可。即填写为:JNDI:java:comp/env/jdbc/repo
(2)作为业务库
①登录 Smartbi,并切换到 管理 > 系统管理 页面。
②点击"新建关系数据源",并输入 JNDI 数据源的相关信息。
驱动程序类型部分仍然选择对应的数据库类型。
连接字符串改为3中配置的即可。即填写为:JNDI:java:comp/env/jdbc/repo