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

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -