我遇到需要使用javax.xml库的情况,其中大部分来自Java 6。 但是,我的部署服务器在Java 5上运行,我无法控制。
那么可以将这些特定的库添加到项目中并且可以在Java 5环境中运行吗?
我主要使用
import javax.xml.bind.*;
import javax.xml.stream.*;
import javax.xml.transform.stream.StreamSource;
我正在使用的代码
XMLInputFactory xif = XMLInputFactory.newFactory();
StreamSource xml = new StreamSource("input.xml");
XMLStreamReader xsr = xif.createXMLStreamReader(xml);
while(xsr.hasNext()) {
if(xsr.isStartElement() && xsr.getLocalName().equals("StandardError")) {
break;
}
xsr.next();
}
所以任何人都可以告诉我如何避免这种情况,以便我的应用程序可以在Java 5环境中运行而不会出现问题。
我们之间使用maven进行构建,因此任何库都必须进入pom.xml
答案 0 :(得分:2)
StAX (JSR-173) 和Java EE 5,并且与Java SE 5(发布这些规范时的JDK版本)完全兼容。当然,这些标准的实现是Java SE 6的一部分。
java.net存储库
您可以从java.net存储库
获取标准的公共API <repository>
<id>java.net</id>
<name>java.net Maven Repository</name>
<url>https://maven-repository.dev.java.net/nonav/repository</url>
</repository>
以下是最新版本的JAXB公共API的依赖关系
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2</version>
</dependency>
<强>实现强>
除了公共API之外,您还需要实现。每个规范都有多个实现。下面是一个POM文件的链接,该文件作为JAXB实现引入EclipseLink MOXy(注意:我是MOXy的主管)。
关于Java SE 5
自2009年10月以来,Java SE 5尚未收到任何公开更新,即使Java SE 6正在快速接近生命周期。如果可能,我建议使用Java SE 7(目前正在开发Java SE 8)。