小编LB.*_*LB.的帖子

发布使用SaxParser解析XML文档 - 2047字符限制?

我创建了一个扩展SaxParser DefaultHandler类的类.我的目的是将XML输入存储在一系列对象中,同时保留原始XML数据的数据完整性.在测试期间,我注意到一些节点数据在输入时被任意截断.

例如:

Input: <temperature>-125</temperature>  Output: <sensitivity>5</sensitivity>
Input: <address>101_State</city>             Output: <address>te</address> 
Run Code Online (Sandbox Code Playgroud)

为了使事情进一步复杂化,上述错误"随机"发生在相同XML标记的每100个实例中的1个中.这意味着输入XML文件包含大约100个包含<temperature>-125</temperature>但仍然只有一个生成输出的标记<sensitivity>5</sensitivity>.其他标签准确生成<sensitivity>-125</sensitivity>.

我已经覆盖了抽象的"characters(char [] ch,int start,int length)"方法来简单地抓取XML标签之间的字符内容:

public void characters(char[] ch, int start, int length)
            throws SAXException {

            value = new String(ch, start, length);

            //debug
            System.out.println("'" + value + "'" + "start: " + start + "length: " + length);
        }
Run Code Online (Sandbox Code Playgroud)

我的println语句为特定温度标记生成以下输出,导致错误输出:

> '-12'start: 2045length: 3 '5'start:
> 0length: 1
Run Code Online (Sandbox Code Playgroud)

这告诉我,对于这个特定的xml元素,字符方法被调用两次.对于所有其他xml标记,它被调用一次.secong行的"start"值表示char []字符正在此XML标记的中间重置.然后使用新的char []再次调用字符方法.

有人熟悉这个问题吗?我想知道我是否达到了char []容量的极限.但是快速查询会使这种情况不太可能.我的char []似乎重置为~2047个字符

谢谢,

java xml parsing

6
推荐指数
1
解决办法
3615
查看次数

Linux上的Tomcat(centos).java版本不正确

我使用yum配置工具在CentOS 5上安装了Tomcat5.我的java Web应用程序需要运行java 1.6而不会出错.但是,我的tomcat安装似乎使用的是java 1.4.当我导航到tomcat管理器页面时,这已得到确认:

Tomcat Version      JVM Version
Apache Tomcat/5.5.23    1.4.2
Run Code Online (Sandbox Code Playgroud)

在linux提示符下,当我执行命令时:

java -version 
Run Code Online (Sandbox Code Playgroud)

它揭示了:

java version "1.6.0"
OpenJDK  Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我修改了/ etc/profile并设置了JAVA_HOME,JRE_HOME和CATALINA_HOME.当我执行 tomcat5 version以下输出结果时:

Using CATALINA_BASE:   /usr/share/tomcat5
Using CATALINA_HOME:   /usr/share/tomcat5
Using CATALINA_TMPDIR: /usr/share/tomcat5/temp
Using JRE_HOME:       /usr/lib/jvm/jre-1.6.0
Server version: Apache Tomcat/5.5.23
Server built:   Jul 27 2009 05:24:08
Server number:  5.5.23.0
OS Name:        Linux
OS Version:     2.6.18-128.1.6.el5
Architecture:   amd64
JVM Version:    1.6.0-b09
JVM Vendor:     Sun Microsystems Inc.
Run Code Online (Sandbox Code Playgroud)

但是,当我启动tomcat并查看服务器信息时,JVM仍然说:

 JVM …
Run Code Online (Sandbox Code Playgroud)

java linux apache tomcat

0
推荐指数
1
解决办法
5236
查看次数

标签 统计

java ×2

apache ×1

linux ×1

parsing ×1

tomcat ×1

xml ×1