【问题标题】:dependencies of jaxws-rt 2.2.10 not working with Eclipse Neonjaxws-rt 2.2.10 的依赖项不适用于 Eclipse Neon
【发布时间】:2017-03-09 04:00:39
【问题描述】:

今天,我发现了 Eclipse Neon 和 Neon.1 的一个错误。 在我的项目中,当我使用此依赖项时:

    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>2.2.10</version>
    </dependency>

在屏幕“Dependency Hierarchy”上,我看到了“jaxws-rt : 2.2.10”,但没有与此库链接的依赖项。

如果我将库降级到版本 2.2.7,它可以正常工作。 如果我使用旧的 Eclipse Mars,它可以在 2.2.10 中正常工作。 如果我在 Eclipse 内部或外部运行 Maven 构建,它工作正常。

我正在寻找 Eclipse Mars 和 Neon 之间的变化。我发现了 Maven Embedded 版本的升级,从 3.3.3 到 3.3.9。不需要安装新的 maven 运行时,因为 Eclipse 会使用 Embedded 版本进行依赖解析。

我比较了 2.2.10 和 2.2.7 的 pom,我发现最后一个版本对于依赖项确实不同,因为我没有找到每个依赖项的任何版本。我不知道它是如何工作的,但它可以在 Eclipse Neon 之外工作。

您认为问题来自于 Eclipse Neon 中的 jaxws-rt 库还是 maven 版本?

感谢您的帮助!

【问题讨论】:

    标签: java eclipse maven jax-ws eclipse-neon


    【解决方案1】:

    我认为您必须支持 jaxws-rt 依赖项。 我遇到了同样的问题,发现this 帖子。

    【讨论】:

      【解决方案2】:

      好的,今天刚刚安装了新的 Eclipse。事实证明,如果您的 Eclipse 是在 JRE 上而不是在 JDK 上运行,那么嵌入式 maven 将会发生不好的事情。

      解决方法是打开 eclipse.ini 并添加/更改以下行

      -vm C:/Java/JDK8/bin/javaw.exe
      

      (显然路径需要指向JDK安装目录中的javaw.exe。)

      【讨论】:

        【解决方案3】:

        遇到了同样的问题,所有答案都对我没有用。我试过了:

        1. 我下载了 Mars 1、Mars 2、Luna。
        2. 更改了 eclipse.ini 文件中的 -vm 参数以使用我的 jdk1.8.0_151
        3. 清除 Eclipse 中所有指向 JRE jre.8.0_151 的引用。

        我认为这个问题的根本原因是跨 JDK 1.8、jax、eclipse 甚至 jaxws-spring(如果你使用一个)的多个版本冲突。

        什么对我有用: 1.最后将jaxws-rt从2.2.10升级到2.3.0.2。

        <!-- JAX-WS -->
            <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-rt</artifactId>
                <version>2.3.0.2</version>
            </dependency>
        

        2。保留 2.2.10,但手动包含该版本的所有子依赖项:

            <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl -->
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.2.10</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/com.sun.xml.stream.buffer/streambuffer -->
        <dependency>
            <groupId>com.sun.xml.stream.buffer</groupId>
            <artifactId>streambuffer</artifactId>
            <version>1.5.4</version>
        </dependency>
        
        
        <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl -->
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2.10</version>
        </dependency>
        
        
        <!-- https://mvnrepository.com/artifact/com.sun.xml.ws/policy -->
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>policy</artifactId>
            <version>2.7.2</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/org.jvnet.staxex/stax-ex -->
        <dependency>
            <groupId>org.jvnet.staxex</groupId>
            <artifactId>stax-ex</artifactId>
            <version>1.7.8</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/org.glassfish.gmbal/gmbal-api-only -->
        <dependency>
            <groupId>org.glassfish.gmbal</groupId>
            <artifactId>gmbal-api-only</artifactId>
            <version>3.2.0-b003</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/org.glassfish.ha/ha-api -->
        <dependency>
            <groupId>org.glassfish.ha</groupId>
            <artifactId>ha-api</artifactId>
            <version>3.1.9</version>
        </dependency>
        

        谢天谢地,我的项目在那之后编译并运行良好。

        【讨论】:

        • 这绝对为我们解决了这个问题(我们个人使用了此答案中概述的#1)。不知道为什么 Eclipse 不想获取相互依赖关系,因为 mvn dependency:tree 显示这些缺失的 JAR 被 jaxws-rt 拉入。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-13
        • 2015-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多