首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝光自由server.xml MySQL数据源配置

蓝光自由server.xml MySQL数据源配置
EN

Stack Overflow用户
提问于 2016-02-08 21:32:49
回答 1查看 1.2K关注 0票数 0

我有一个基于EJB的应用程序,它连接到MySQL数据库,并为更新操作提供web。它可以很好的部署到当地是自由。

下面是数据源的server.xml配置。

代码语言:javascript
复制
<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"/>

如您所见,它使用JDBC驱动程序jar的库,它是用文件路径指定的。显然,如果我试着把耳朵部署到布卢米克斯·自由,这是行不通的。这就是为什么我要部署整个服务器目录来进行最少数量的更改。然而,即使在这种情况下,我也不知道如何为数据源正确配置JDBC驱动程序库,因此服务器也会选择它。请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-08 21:49:49

如果您想连接到mysql数据库,并希望手动在server.xml中提供凭据,可以执行以下操作:

server.xml:

代码语言:javascript
复制
<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>

在本例中,我会将mysql jar文件放在服务器配置目录wlp/usr/servers/defaultServer/mysql-connector-java-5.1.34-bin.jar中。

现在可以直接从cf push dir中提取defaultServer。

但是,自由构建包可以自动为从server.xml目录绑定的数据库生成server.xml数据源配置。例如,如果我创建一个SQLDB或ClearDB服务并将其绑定到自由应用程序,并将其命名为"TradeDataSource",构建包将生成配置,并自动将正确的驱动程序jar添加到类路径。

cf文件yourappname app/wlp/usr/server/defaultServer/server.xml

代码语言:javascript
复制
<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'/>

现在我可以使用它的jndi名称查找数据源:jdbc/TradeDataSource

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35279752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档