`
houzhaowei
  • 浏览: 499247 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

weblogic 下解决文件批读取

阅读更多

      自己写了些sql 脚本的配置文件,以前在tomcat下可以从根目录获得所有这些配置文件,并在服务器启动时进行解析放到缓存。但在weblogic下就不行了!我在网上找过各种weblogic获得文件绝对路径的方案,但都是针对于单个文件读取的方案,不能解决批读取。于是想到了如下解决方案:

      写一个xml配置文件来引用所有的之前的配置文件,并写一个类对用dom4j对这个配置文件进行解析,依次读取xml中引入的所有配置文件。

    无代码无真相:

     用这个xml文件来引入其它配置文件:

    

<?xml version="1.0" encoding="UTF-8"?>
<dbscript-files>
	<dbscript-location value="/com/sinosoft/emergency/dbscripts/">
		<list path="authorization">
			<value>infoTransfer.xml</value>
			<value>module.xml</value>
			<value>orgnization.xml</value>
			<value>permission.xml</value>
			<value>role.xml</value>
			<value>user.xml</value>
		</list>
		<list path="graph">
			<value>graph.xml</value>
		</list>
		<list path="sbgl/sbgl001_sbccdwgl">
			<value>sbccdwgl.xml</value>
		</list>
	</dbscript-location>
</dbscript-files>

 然后这样进行解析:

package com.sinosoft.emergency.parser.core;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import com.sinosoft.emergency.exception.core.ParserException;


public class DBScriptsConfigParser {
	public static List<String> parser(InputStream is) throws ParserException{
		SAXReader reader = new SAXReader();
		try {
			Document doc = reader.read(is);
			Element root = doc.getRootElement();
			DBScriptsConfigVisitor visitor = new DBScriptsConfigVisitor();
			root.accept(visitor);
			return visitor.getFilepaths();
		} catch (DocumentException e) {
			throw new ParserException("parser dbscript config exception.", e);
		}
	}
}

 

package com.sinosoft.emergency.parser.core;

import java.util.ArrayList;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Element;
import org.dom4j.VisitorSupport;

public class DBScriptsConfigVisitor extends VisitorSupport {
	private List<String> filepaths = new ArrayList<String>();
	private String location = "";
	private String listPath = "";
	@Override
	public void visit(Element element) {
		String name = element.getName();
		if(name.equals("dbscript-location")) {
			location = "";
			Attribute valueAttr = element.attribute("value");
			if(valueAttr == null) {
				assert false : "node [dbscript-location] must has [value] attribute."; 
			}
			location = valueAttr.getValue().trim();
		}
		
		if(name.equals("list")) {
			Attribute pathAttr = element.attribute("path");
			listPath = "";
			if(pathAttr != null) {
				String pathValue = pathAttr.getValue().trim();
				if(!location.endsWith("/") && !pathValue.startsWith("/")) {
					listPath = "/" + pathValue;
				} else {
					listPath = pathValue;
				}
			}
			
		}
		
		if(name.equals("value")){
			String valueText = element.getText();
			if(!(location+listPath).trim().endsWith("/") && !valueText.startsWith("/")) {
				valueText = "/" + valueText.trim();
			}
			filepaths.add(location + listPath + valueText);
		}
		
		if(name.equals("dbscript-file")){
			String fileText = element.getText();
			filepaths.add(fileText);
		}
	}

	public List<String> getFilepaths() {
		return filepaths;
	}

	public void setFilepaths(List<String> filepaths) {
		this.filepaths = filepaths;
	}

}

 

0
1
分享到:
评论

相关推荐

    Weblogic管理指南

    在启动服务器时需要正确配置口令文件,确保服务器能够安全地读取这些信息。 - **启动与终止Windows服务形式的WebLogic服务器** 将WebLogic服务器配置为Windows服务后,可以像其他Windows服务一样启动和停止它。这...

    linux相关命令学习

    而`delusers.awk`则简单地从文件中读取用户名,然后批量执行`userdel`命令删除用户。 ### 2. 系统监控与资源管理 #### 网络连接状态监控 `netstat-an|grep`组合用于监控特定端口的网络连接状态。例如,`netstat-an...

    java开发乱码问题处理大全

    对于源代码文件,如果它们不是UTF-8编码,可以使用批量转换脚本来统一转换。例如,可以创建一个批处理脚本,使用`native2ascii`命令将非UTF-8编码的资源文件转换为目标编码。然而,最简便的方法是直接在IDE中设置...

    DWR入门资料

    ### DWR基础知识与应用 ... - 解决与WebLogic服务器相关的类路径问题。 - **10.1.4 没有cookies的情况下用DWR** - 在无Cookie环境下使用DWR。 - **10.2 更多资源** - 提供更多学习资源和文档链接。

    DWR中文文档.pdf

    这通常意味着下载DWR的最新版本,并将其包含在项目的lib目录下。确保所有的依赖库都已正确配置。 ##### 1.2.2 编辑配置文件 DWR的配置文件(`web.xml` 和 `dwr.xml`)是启动DWR的关键。`web.xml` 是Servlet容器的...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    Spring.3.x企业应用开发实战(完整版).part2

    9.2.5 Spring使用ThreadLocal解决线程安全问题 9.3 Spring对事务管理的支持 9.3.1 事务管理关键抽象 9.3.2 Spring的事务管理器实现类 9.3.3 事务同步管理器 9.3.4 事务传播行为 9.4 编程式的事务管理 9.5 使用XML...

    Spring3.x企业应用开发实战(完整版) part1

    9.2.5 Spring使用ThreadLocal解决线程安全问题 9.3 Spring对事务管理的支持 9.3.1 事务管理关键抽象 9.3.2 Spring的事务管理器实现类 9.3.3 事务同步管理器 9.3.4 事务传播行为 9.4 编程式的事务管理 9.5 使用XML...

    TongWeb6.0应用开发手册.pdf

    - **改进的批量更新/删除**:提高批量操作的性能。 - **改进的XML映射**:提供了更灵活的XML映射选项。 #### 第6章:JEE6新特性 ##### 6.1 DI的使用 - **@Inject**:用于注入依赖项。 - **@Qualifier**:用于限定...

    框架面试笔试问答题.docx

    - **文件下载**:通过读取服务器上的文件流,使用`response.getOutputStream()`发送给客户端。 - **分页**:使用`PageHelper`插件对SQL语句进行分页处理,或者在Service层手动实现分页逻辑。 #### 10. Spring框架的...

    Spring中文帮助文档

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    Spring API

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

Global site tag (gtag.js) - Google Analytics