1、读取工具类

public static Document getXMLAttribute(String filepath, String nodeName){Document document = null;List<Map<String,String>> retListmap = new ArrayList<>();try {//创建解析器SAXReader reader=new SAXReader();//创建读取文件内容对象document=reader.read(filepath);//指定文件并读取return document;}catch (DocumentException e){if (document!=null){document.clone();}} catch (Exception e) {e.printStackTrace();}return null;}

2、调用

public class XMLConfig {public static Document getTomcatServerContext(){Document el = DocumentUtils.getXMLAttribute(ApplicationConfig.pathurl+"/tomcat/conf/server.xml","Context");return el;//return list;}/*** 把改变的domcument对象保存到指定的xml文件中*/public static String saveDocument(Document document){XMLWriter writer = null;try {Writer osWrite=new OutputStreamWriter(new FileOutputStream(ApplicationConfig.pathurl+"/tomcat/conf/server.xml"));//创建输出流OutputFormat format = OutputFormat.createPrettyPrint();  //获取输出的指定格式format.setEncoding("UTF-8");//设置编码 ,确保解析的xml为UTF-8格式writer = new XMLWriter(osWrite,format);//XMLWriter 指定输出文件以及格式writer.write(document);//把document写入xmlFile指定的文件(可以为被解析的文件或者新创建的文件)writer.flush();writer.close();return "修改配置文件成功";}catch (Exception e){if (writer!=null){try {writer.flush();writer.close();}catch (Exception ex){}}}return "修改配置文件失败!";}}

3、获取想要的内容(以获取服务端口号为例)

由于我配置了两个Tomcat的service服务,因此是循环读取的

public static List<String> readTomcatConfig() {new IniUtils();ArrayList<String> portList = new ArrayList<>();Document document = XMLConfig.getTomcatServerContext();// 获取根节点Element root = document.getRootElement();// 获取所有的子节点List<Element> elements = root.elements();// 由于配置了两个service服务,而且是最后两个,因此只要最后两个节点elements.subList(0,elements.size() - 2).clear();for (Element element : elements){Element Connector_config = element.element("Connector");String port = Connector_config.attribute("port").getValue();portList.add(port);}/**这里是单个配置的Document document = XMLConfig.getTomcatServerContext();Element root = document.getRootElement();Element Service_config = root.element("Service");Element Connector_config = Service_config.element("Connector");String port= Connector_config.attribute("port").getValue();*/return portList;}

Java读取和修改Tomcat的server.xml配置文件(多个service配置适用)相关推荐

  1. [转]/tomcat/conf/server.xml配置文件的源码解析

    备注: 在把Java项目直接放到/tomcat/webapps目录下时,server.xml的代码是不变的,端口为8080 你可以通过修改这个8080端口进行配置,以及配置<host>里面 ...

  2. Docker Centos 7.X部署Tomcat 并且修改Server.xml配置文件方案 并设置时区 只要十一步

    我用的是腾讯云 Centos 7.3版本,使用Docker最好使用7.x以上版本 1.拉取镜像 docker pull tomcat:8 2.创建容器并且挂载webapps的目录(我这里将本地端口映射 ...

  3. java读取并修改xml文件

    java读取并修改xml文件 java如何读取xml并且修改xml文件呢?代码如下: //复制模板xnl File file = new File(xmlSavePath + "/mb.xm ...

  4. Tomcat在server.xml中配置虚拟目录

    首先,在D盘中新建文件chapter02,然后,在chapter02目录下,新建文件welcome.xml 此时,直接访问是访问不到的 启动Tomcat服务器,在浏览器地址栏中输入 http://lo ...

  5. Tomcat 服务器server.xml,web.xml的关键参数配置

    Tomcat 服务器server.xml的关键参数配置 说明:以下文字均以tomcat5.0.30为例进行. 1,配置tomcat服务器访问端口,只需配置Connector的port端口即可.Tomc ...

  6. 配置Tomcat的server.xml以适应web-content文件系统的位置改变

    刚才把写的一对jsp.html文件夹改变了位置,然后测试的时候出现了404 后来思考,应该去重新配置tomcat的server.xml文件,修改虚拟路径对应的文件系统路径,修改为当前对应的文件系统路径 ...

  7. 本机tomcat的server.xml被还原的问题及解决办法

    将tomcat的server.xml进行修改,但当eclipse发布站点后,发布tomcat中的server.xml会被还原. 原因是eclipse会将自己的tomcat配置文件对tomcat覆盖,解 ...

  8. Tomcat server.xml配置文件介绍

    一.server.xml文件介绍 1.server.xml作用     Server.xml配置文件用于对整个容器进行相关的配置. 2.server.xml文件的配置元素列表 <Server&g ...

  9. Java读取并修改图片的像素值

    Java程序读取图片像素的值类, package work;import java.awt.AWTException; import java.awt.Dimension; import java.a ...

最新文章

  1. Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用
  2. Visual C++ 2010 使用心得 和帮助文档问题
  3. Java 面向抽象编程和面向接口编程
  4. Eclipse文档注释快捷键以及自定义文档注释内容
  5. 商场专柜私收银现象治理要点
  6. 紫书 习题 10-20 UVa 1648 (推公式)
  7. 保护你的Web服务器 iptables防火墙脚本全解读
  8. Android Monkey测试入门(摘)
  9. 微软 Windows11 Build 22000.71 更新(KB5004252)发布
  10. 核心API最佳实践——JDK日志分级
  11. 微软全新Chromium版Edge浏览器下载
  12. python开发小型数据库_python web开发之数据库ORM的 peewee库 动手学习实践笔记
  13. async和await理解代码
  14. Tunnels 状压DP+BFS
  15. 使用MVC框架中要注意的问题(一):修改首页以支持主题
  16. rtl8188eu无线网卡驱动linux,关于rtl8188eu_Linux的驱动问题想请教一下
  17. docker部署达梦流程记录(DM7和DM8)
  18. Excel 常用函数和公式
  19. ipad上写代码???阿里云+vscode-server助你一臂之力
  20. Mac Gradle 5.0安装

热门文章

  1. mysql 时间转时间戳
  2. 通过pid查看端口号
  3. 设置eclipse的背景颜色为护眼模式
  4. 众人划桨开大船---公司春节联欢部门节目剧本
  5. java 判断实体类是否为空_如何判断一个实体类是否为空
  6. 楚楚街2016校招 ——礼物(动态规划)
  7. CSDN Blog欢迎推荐好的皮肤
  8. android ListView 的多选模式
  9. 持续集成-DevOps概念篇
  10. CUDA与cuDNN 关系