当前位置: 首页 > 知识库问答 >
问题:

包javax.xml.soap在模块java.xml.ws中声明,该模块不在模块图中

安明亮
2023-03-14

因此,我在工作SOAP客户机示例中使用了SOAP示例,将其放入一个文件SOAPClientSAAJ中。java,并尝试编译它(Debian上的Openjdk 9):

t@h ~/javatest> javac SOAPClientSAAJ.java 
SOAPClientSAAJ.java:1: error: package javax.xml.soap is not visible
import javax.xml.soap.*;
                ^
  (package javax.xml.soap is declared in module java.xml.ws, which is not in the module graph)
1 error

在谷歌搜索了一些之后,我发现编译和运行

t@h ~/javatest> javac --add-modules java.xml.ws SOAPClientSAAJ.java
t@h ~/javatest> java --add-modules java.xml.ws SOAPClientSAAJ

作品。请参阅此视频了解一般背景:https://www.youtube.com/watch?v=y8bpKYDrF5I

现在,问题:

  1. 编译器不应该自动添加java模块吗。xml。ws?(因为它显然知道需要它)这是javax中的一个bug吗。xml。肥皂

共有1个答案

哈沛
2023-03-14

这是新的Java9模块的结果。javax。xml。soap包实际上是一个javaee包,因此现在不可见。当前的解决方法是,如您所做的那样,使用--添加模块,或者对代码进行模块化。

模块化代码需要将其重新构造为模块,并包含模块信息。java文件,指定您正在使用的模块。在您的例子中,指定java。东南方。ee将允许访问所有ee模块。

 类似资料:
  • 问题内容: 因此,我在WorkingSoap客户端示例中使用SOAP示例,将其放入文件中,然后尝试对其进行编译(Debian上的Openjdk 9): 谷歌搜索了一些之后,我发现编译和运行为 作品。另请参见此视频的一般背景:https : //www.youtube.com/watch?v=y8bpKYDrF5I&t=20m17s 现在,问题: 编译器是否应该自动添加模块java.xml.ws?(

  • 问题内容: 我有一个使用Java Webstart技术的项目。我决定将Java版本从8升级到9。但是,在编译时遇到以下错误: 我试图将其包含到类路径中,但仍然存在相同的问题。 问题答案: 看起来默认情况下,类路径上的代码未解析 java.jnlp (非常类似于Java EE模块 )。解决的办法是用明确添加(两者并接受参数)。 JEP 261:模块系统 或此博客文章中讨论了此选项。

  • 我有一个使用JavaWebStart技术的项目。我决定将Java版本从8升级到9。但是,我在编译时遇到了以下错误: 我试图包括到类路径,但仍然存在相同的问题。

  • 我们即将从java8迁移到java9,在我们的代码中我们使用的是soap,因此我需要告诉eclipse使用java.xml进行编译。ws模块。 在第一步中,我不想模块化项目(即添加module-info.java)。相反,我想将每个依赖项保留在未命名的模块中,因此我需要另一种方法将java.xml.ws模块添加到eclipse java编译器中(希望通过使用--add模块=java.xml.ws但

  • use 声明可以将一个完整的路径绑定到一个新的名字,从而更容易访问。 // 将 `deeply::nested::function` 路径绑定到 `other_function`。 use deeply::nested::function as other_function; fn function() { println!("called `function()`"); } mod de