操作环境
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