小编Kra*_*ock的帖子

Java 12 上的 Apache Axis 1.4

我目前正在尝试从 Java 8 项目迁移到 Java 12。(希望如此)最后一个障碍是我们被迫使用的旧 WebService。在 Java 8 中“按原样”使用 WebService 本身不是问题,它已经工作了很多年。

wsdl 指出:

<!--由Apache Axis 创建的WSDL 版本:1.4

建立于 2006 年 4 月 22 日 -->

据我所知,新版本的 WSDL2JAVA 不再支持这种类型的服务(因为它们依赖于 Axis 2):

WSDLToJava 错误:CXF 不支持 Rpc/编码的 wsdls

为了使此服务可用(使用 Java 812),我需要以下库:

<!-- https://mvnrepository.com/artifact/javax.xml.rpc/javax.xml.rpc-api -->
<dependency>
    <groupId>javax.xml.rpc</groupId>
    <artifactId>javax.xml.rpc-api</artifactId>
    <version>1.1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这就是问题发生的地方。该库定义了部分包javax.xml,由于它是 Java 系统路径,因此不再允许使用。任何建议或解决方法?我忽略了什么吗?

编辑: ZhekaKozlov 关于不得不切换到雅加达是正确的。现在还剩下一个错误,因为Axis2,项目中也是需要的。

<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-kernel -->
<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-kernel</artifactId>
    <version>1.7.9</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

将它添加到一个新的 Java 12 项目会使org.w3c.dom.*(例如 Document)无法使用。

EDIT2:我终于让一切正常。程序正在运行,代码中没有错误。不幸的是,我无法测试应用程序的 Axis 部分,因为它所连接的服务只能在我们客户端的环境中使用,因此必须对其进行测试。在axis2和axis2-adb上,我不得不排除两个库:

<exclusions>
    <exclusion>
        <groupId>org.apache.geronimo.specs</groupId> …
Run Code Online (Sandbox Code Playgroud)

java axis jax-rpc javax.xml java-12

5
推荐指数
1
解决办法
1769
查看次数

Eclipse被导入所迷惑(“可从多个模块访问”)

引用简单的.jar文件时,Eclipse会显示错误消息:

可以从多个模块中访问包java.awt:<未命名>,java.desktop

例如,当.jar文件中包含javax.awt或时,就会发生这种情况javax.swing

最简单的示例如下:

package test;

import javax.swing.JDialog;

public class Test {
    public static void main(String[] args) {
        new JDialog();
    }
}
Run Code Online (Sandbox Code Playgroud)

仅使用文件夹结构javax/swing(无需文件)将.jar文件添加到类路径中将导致出现错误。我正在使用JDK 10/12(均无效)。设置编译器遵从性1.8可使整个过程再次运行。在另一台与Eclipse 2018-09此兼容的机器上,编译器遵从性设置为10

我在Eclipse 2019-03上(出于测试目的)在新安装的设备Eclipse 2018-09上工作正常。为什么?

java eclipse jar

3
推荐指数
7
解决办法
4795
查看次数

标签 统计

java ×2

axis ×1

eclipse ×1

jar ×1

java-12 ×1

javax.xml ×1

jax-rpc ×1