2

我有一种情况,我需要使用 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

4

1 回答 1

2

JAXB (JSR-222)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 文件的链接,该文件将EclipseLink MOXy作为 JAXB 实现引入(注意:我是 MOXy 负责人)。

关于 Java SE 5

自 2009 年 10 月以来,Java SE 5 没有收到任何公开更新,甚至 Java SE 6 也正迅速接近生命的尽头。如果可能的话,我会推荐使用 Java SE 7(Java SE 8 目前正在开发中)。

于 2012-08-26T11:12:18.147 回答