java - Bluemix Liberty server.xml MySQL data source configuration -
i have ejb based application connects mysql database , provides web ui update operations. works fine when deployed local liberty.
here server.xml configuration data source.
<library id="mysqldriverlib"> <file name="${user-defined_jdbc_driver_path}/mysql-connector-java-5.1.38-bin.jar"/> </library> <datasource id="defaultdatasource" type="javax.sql.connectionpooldatasource" transactional="true"> <jdbcdriver libraryref="mysqldriverlib"/> <properties url="jdbc:mysql://localhost:3306/ic16_lab2434" connectionurl="jdbc:mysql://localhost:3306/ic16_lab2434" driver="com.mysql.jdbc.driver" driverclass="com.mysql.jdbc.driver" metadata="mysql" password="object00" user="root" username="root" /> </datasource> <variable name="user-defined_jdbc_driver_path" value="c:\software\mysql-connector-java-5.1.38"/> as can see, uses library jdbc driver jar, specified path file. obviously, won't work if try deploy ear bluemix liberty. that's why deploying whole server directory make least number of changes. yet in case don't know how configure jdbc driver library data source server picks up. please help.
if want connect mysql database , want manually provide credentials in server.xml, can following:
server.xml:
<datasource jndiname="jdbc/tradedatasource"> <jdbcdriver id="mysqldriver" libraryref="mysql-connector" /> <properties url="jdbc:mysql://1.2.3.4:3306/db" password="mypassword" user="admin" /> </datasource> <library description="mysql jdbc driver" id="mysql-connector" name="mysql connector"> <fileset dir="${server.config.dir}" id="mysql-connector-jar" includes="mysql-connector-java-*.jar" /> </library> in example, put mysql jar file in server config directory wlp/usr/servers/defaultserver/mysql-connector-java-5.1.34-bin.jar
you can cf push directly defaultserver dir
however, liberty buildpack can automatically generate server.xml datasource config databases bind bluemix catalog. example, if create , bind sqldb or cleardb service liberty application , name service "tradedatasource", buildpack generate config , add right driver jar classpath automatically.
cf files yourappname app/wlp/usr/servers/defaultserver/server.xml
<datasource id='mysql-tradedatasource' jdbcdriverref='mysql-driver' jndiname='jdbc/tradedatasource' transactional='true' type='javax.sql.connectionpooldatasource'> <properties id='mysql-tradedatasource-props' databasename='${cloud.services.tradedatasource.connection.name}' user='${cloud.services.tradedatasource.connection.user}' password='${cloud.services.tradedatasource.connection.password}' portnumber='${cloud.services.tradedatasource.connection.port}' servername='${cloud.services.tradedatasource.connection.host}'/> <connectionmanager id='mysql-tradedatasource-conmgr' maxpoolsize='10'/> </datasource> <jdbcdriver id='mysql-driver' javax.sql.xadatasource='org.mariadb.jdbc.mysqldatasource' javax.sql.connectionpooldatasource='org.mariadb.jdbc.mysqldatasource' libraryref='mysql-library'/> i can datasource using jndi name: jdbc/tradedatasource
Comments
Post a Comment