我们将数据作为XML使用,并且存在多种格式化XSL样式。在IE中它一直工作得很好。使用Java在HTML中转换XML + XSL

然后,我们需要在Chrome中显示与HTML相同的内容。所以,我们在服务器端(Java)找到一个API来将XML + XSL转换为HTML。

public static String convertXMLXSL(String xml, String xsl) throws SQLException {

System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");

TransformerFactory tFactory = TransformerFactory.newInstance();

String html = "";

try {

try {

StreamResult result = new StreamResult(new StringWriter());

**Transformer trans = tFactory.newTransformer(new StreamSource(new ByteArrayInputStream(xsl.getBytes("utf-8"))));

trans.transform(new StreamSource(new ByteArrayInputStream(xml.getBytes("utf-8"))), result);**

html = result.getWriter().toString();

} catch (TransformerException te) {

te.printStackTrace();

}

} catch (Exception e) {

AppendExceptionToLog(e);

}

return html;

}

但是,现在后的某个时间,我们看到被封锁在trasform的javax.xml.transform.Transformer中的方法

Sep 12, 2017 12:07:49 PM org.apache.catalina.valves.StuckThreadDetectionValve notifyStuckThreadDetected

WARNING: Thread "http-8080-12" (id=15800) has been active for 6,516 milliseconds (since 9/12/17 12:07 PM) to serve the same request for

and may be stuck (configured threshold for this StuckThreadDetectionValve is 5 seconds).

There is/are 3 thread(s) in total that are monitored by this Valve and may be stuck.

java.lang.Throwable

at org.apache.xpath.axes.AxesWalker.getNextNode(AxesWalker.java:333)

at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:361)

at org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:192)

at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:281)

at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:435)

at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:218)

at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:210)

at org.apache.xpath.XPath.execute(XPath.java:335)

at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:278)

at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:246)

at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)

at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)

at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)

at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)

at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)

at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)

at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284)

at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)

at Util.processXMLXSL(Util.java:3364)

这里是一些线程转储,我想知道。

1)我们有没有其他已知的实现在服务器端做同样的事情?

2)我应该考虑使用客户端方法使用Mozilla的XSLTProcessor?

+0

时是否与输入XML独立运行XSL提供正确的HTML输出,说在Eclipse IDE? –

+0

问题不在于输出。它与代码所花费的时间。 –

java html转换xml文件,使用Java在HTML中转换XML + XSL相关推荐

  1. 【sql的mapper.xml文件】完美去除idea中mapper.xml文件中的黄色绿色背景色

    文章目录 完美去除idea中mapper.xml文件中的背景色 换主题颜色 1.settings->Editor->Inspection 2.Editor->Color Scheme ...

  2. java xml 反射_Java 读取XML文件以及Java 的反射机制实现

    Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...

  3. XMLReader—一个可以读取XML文件的java类

    在我的博文java ArrayList代替数组中有个XMLReader类,这是一个可以读取XML文件的java类,它的实现过程是怎样的呢?接下来让我们看看XMLReader的实现过程: 首先你要下载一 ...

  4. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  5. Android -- 创建XML文件对象及其序列化, pull解析XML文件

    1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /*** 短信的业务bean* @author Administrator ...

  6. 将.ai文件矢量图转化为.xml文件并在Android项目中使用

    写在前面的话 笔者最近在做一个安卓的小项目,在开发的过程中,发现经常需要使用图标类的矢量图.下面我将详细叙述如何将从网络上下载的ai文件内的图标转化为xml文件并在Android项目中使用该图标. 使 ...

  7. android 表格xml,【Android】利用表格布局,Android中xml文件与java的交互制作登录界面...

    登录界面是图形编程.网页编程的一个经典而又基础的程序. 在安卓中,如图所示一个基本登录界面: 点击取消按钮就关闭这个程序,点击登录按钮则显示用户输入的用户名与密码. 一.基本布局 这个程序利用到安卓中 ...

  8. Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

    Java使用ftl模板文件生成Word 一.写在前面 最近在项目中使用打印功能,发现这个功能我已经写过多次了,下面这个文章的发步日期在2020年,不得不感慨时间之快啊. https://blog.cs ...

  9. java获取标准输出到文件_IO java标准输入与输出

    1.文件输出流 (java IO简介) /*** java io 标准的输入与输出 * 使用java IO我们可以对外界设备已相同的方式进行 * 读写完成数据交换. * * java IO将" ...

最新文章

  1. 爱立信思科结盟背后:几家欢喜几家愁
  2. 递归循环子组件_算法一看就懂之「 递归 」
  3. RabbitMQ配置环境变量后启动不了的解决方法
  4. 手把手教你安装VMtools
  5. c语言创建新指针,如何用c语言创建一个指针
  6. oracle数据库定时同步工具,[每天自动同步一个数据库表的数据]sql server定时同步oracle数据表...
  7. 第 197 章 Unity
  8. git依赖python_python爬虫之git的安装
  9. java 面向对象 重载_Java方法重载
  10. java 直播_一对一直播源码开发过程中区分Java和PHP的重要性
  11. HBase 管理,性能调优
  12. bzoj 4514: [Sdoi2016]数字配对(二分图+费用最大流)
  13. Thinkphp双轨直销系统源码
  14. 华为手机热点无法连接_华为手机开热点,连不上怎么破
  15. python 回调函数的使用_Python回调函数用法实例详解
  16. java 继承 序列化_Java中带继承的对象序列化 - Break易站
  17. Mac添加Windows共享打印机
  18. 【升级pip;查看pip版本】
  19. Edge浏览器如何清除缓存
  20. dnspod java_使用dnspod遭遇的奇特问题以及背后的原因与临时解决方法

热门文章

  1. sql ddl中key_SQL DDL:SQL Server中SQL DDL命令入门
  2. alwayson高可用组_AlwaysOn可用性组–如何在集群实例和独立实例之间设置AG(第2部分)
  3. 获取移除指定Url参数(原创)
  4. Mac 显示sudo: pip: command not found
  5. HTML5的音频播放和视频播放
  6. linux android开发环境搭建
  7. Unity3D优化总结(一)
  8. 建立一个Windows Phone 7益智游戏 附源代码
  9. smart client auto update
  10. mysql 中ak_数据库ak