码迷,mamicode.com
首页 > 其他好文 > 详细

动态配置 JBOSS ( eap 6.2 ) DataSource

时间:2015-03-13 12:42:53      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

 

操作环境 



windows + jboss eap 6.2 + MyEclipse 10.0 


配置远程接口


 

  <interface name="management">

            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

  </interface>

 

<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

 

 

 

在jboss企业版的jboss-eap-6.2\standalone\configuration的目录中standalone.xml 用于配置NativeManagement Client接口配置文件,默认如上。也可以自定义配置,

如下**系统配置

 

 

  <interface name="management">

            <inet-address value="${jboss.bind.address.management:192.168.24.125}"/>

  </interface>

 

<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

 


注入数据



DataSourceEntity dsEntity = new DataSourceEntity();

        // 连接字符串

        dsEntity.setConnURL("java:jboss/datasources/KsMysqlDS");

        // 数据源名称

        dsEntity.setDsName("KSDScfltest");

        dsEntity.setDriver("mysql");

        dsEntity.setEnabled(true);

        dsEntity.setJdniName("java:jboss/datasources/" + dsEntity.getDsName());

        dsEntity.setMaxPoolSize(20);

        dsEntity.setMinPoolSize(5);

        dsEntity.setUseJTA(true);

        dsEntity.setUsername("root");

        dsEntity.setPassword("root");

        dsEntity.setTimeout(3600);

        try {

            createDateSource(dsEntity);

        } catch (Exception e) {

            System.out.println(e.toString());

        }

 

 

 

 

public class DataSourceEntity {

    /*

     * DATASOURCES.Attribute 属性设置

     */

    //数据源名称

    private String dsName;

    //jndi名称

    private String jdniName;

    //是否启用

    private boolean isEnabled;

    //驱动名称,如:mysql\oracle

    private String driver;

   

    /*

     * DATASOURCES.Conection 连接设置

     */

    //连接字符串

    private String connURL;

    //是否使用JTA

    private boolean useJTA;

   

    /*

     * DATASOURCES.Security 安全设置

     */

    //连接ds用户名及密码

    private String username;

    private String password;

   

    /*

     * DATASOURCES.Pool 连接池设置

     */   

    //最小最大连接池

    private int minPoolSize;   

    private int maxPoolSize;

    //空闲时间

    private int timeout;

   

    public int getTimeout() {

        return timeout;

    }

    public void setTimeout(int timeout) {

        this.timeout = timeout;

    }

    public DataSourceEntity(){

       

    }

    public DataSourceEntity(String dsName,String jdniName,boolean isEnabled,String connURL,boolean

            useJTA,String username,String password,int minPoolSize,int maxPoolSize){

       

    }

    public String getDsName() {

        return dsName;

    }

    public void setDsName(String dsName) {

        this.dsName = dsName;

    }

    public String getJdniName() {

        return jdniName;

    }

    public void setJdniName(String jdniName) {

        this.jdniName = jdniName;

    }

    public boolean isEnabled() {

        return isEnabled;

    }

    public void setEnabled(boolean isEnabled) {

        this.isEnabled = isEnabled;

    }

    public String getDriver() {

        return driver;

    }

    public void setDriver(String driver) {

        this.driver = driver;

    }

    public String getConnURL() {

        return connURL;

    }

    public void setConnURL(String connURL) {

        this.connURL = connURL;

    }

    public boolean isUseJTA() {

        return useJTA;

    }

    public void setUseJTA(boolean useJTA) {

        this.useJTA = useJTA;

    }

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;

    }

    public String getPassword() {

        return password;

    }

    public void setPassword(String password) {

        this.password = password;

    }

    public int getMinPoolSize() {

        return minPoolSize;

    }

    public void setMinPoolSize(int minPoolSize) {

        this.minPoolSize = minPoolSize;

    }

    public int getMaxPoolSize() {

        return maxPoolSize;

    }

    public void setMaxPoolSize(int maxPoolSize) {

        this.maxPoolSize = maxPoolSize;

    }

   

   

}

 

 


简单的pojo配置数据,这些从JBoss Mananager 可以看到一些默认的配置


动态添加



/**

     *

     * @Title: createDateSource

     * @Description: TODO(动态添加数据源)

     * @param @param dsEntity 设定文件 数据源实体

     * @return void 返回类型 void

     * @throws IOException

     * @throws

     * @author cfl

     * @date 2015年3月13日

     */

    public static void createDateSource(DataSourceEntity dsEntity) throws IOException {

       

        //连接jboss进程的客户端

        ModelControllerClient client =  ModelControllerClient.Factory

                                        .create(InetAddress.getByName("127.0.0.1"), 9999);

        //操作数据源节点

        ModelNode op = new ModelNode();

     

       

        try {

            

            op.get("operation").set("add");

           

            // 数据源名称

            String dsname = dsEntity.getDsName();   

            // 在datasources下面添加数据源名称为dsname的子节点data-source

            op.get("address").add("subsystem", "datasources").add("data-source", dsEntity.getDsName());

            // 设置jndi查找名称

            op.get("jndi-name").set(dsEntity.getJdniName() + dsEntity.getDsName());

            // 设置数据源类

            //op.get("datasource-class").set("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource");

            // 设置驱动名称

            op.get("driver-name").set(dsEntity.getDriver());           

            op.get("use-java-context").set("true");

            // 数据源连接池名称

            op.get("pool-name").set(dsEntity.getDsName());

            // 连接池timeout

            op.get("Idle Timeout").set(dsEntity.getTimeout());

            op.get("jta").set(true);

            op.get("connection-url").set(dsEntity.getConnURL());

            // 连接数据源名称

            op.get("user-name").set(dsEntity.getUsername());

            // 连接数据源密码

            op.get("password").set(dsEntity.getPassword());

            // 连接池大小

            op.get("max-pool-size").set(dsEntity.getMaxPoolSize());

            op.get("min-pool-size").set(dsEntity.getMinPoolSize());

           

            //启用该数据源,默认关闭

            op.get("Is enabled?").set(true);

            // 执行设置

            ModelNode result = client.execute(op);

 

            System.out.println("----------" + result.toString() + "---------");

           

        } finally {

           

            client.close();

           

        }

    }

 

 

 

 

 


































































效果图


技术分享

当然也可以从standalone.xml看到生成的相关节点



* [1] API地址:  https://docs.jboss.org/author/display/AS71/The+native+management+API


 

 

动态配置 JBOSS ( eap 6.2 ) DataSource

标签:

原文地址:http://blog.csdn.net/cfl20121314/article/details/44239483

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!