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

梅文:工具。执行wsgen时未找到jar

容柏
2023-03-14

我尝试从Windows 8命令行使用jaxws: wsgenmaven插件,但失败了:

java.lang.ClassNotFoundException:com.sun.mirror.apt.AnnotationProcessorFactory

我知道这表明Maven在我的JDK中找不到tools.jar,但是我不知道如何添加这个(当然JDK已经安装了)。

以下是有关我的配置的一些详细信息:

echo %JAVA_HOME%
C:\Java\jdk1.7.0_51

java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 17:22:22+0200)
Maven home: C:\Program Files (x86)\apache-maven-3.1.1
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Java\jdk1.7.0_51\jre
Default locale: de_CH, platform encoding: Cp1252
OS name: "windows 8", version: "6.2", arch: "amd64", family: "windows"

所以我也尝试在我的pom.xml中添加一个个人资料部分:

<profiles>
    <profile>
        <id>default-tools.jar</id>
        <activation>
            <property>
                <name>java.vendor</name>
                <value>Sun Microsystems Inc.</value>
            </property>
        </activation>
        <dependencies>
            <dependency>
                <groupId>com.sun</groupId>
                <artifactId>tools</artifactId>
                <version>1.7.0</version>
                <scope>system</scope>
                <systemPath>${java.home}/../lib/tools.jar</systemPath>
            </dependency>
        </dependencies>
    </profile>
</profiles>

并执行

mvn -P default-tools.jar package

但是我仍然得到了ClassNotFoundException

全部输出:

[错误]未能在项目 WebService 上执行目标 org.codehaus.mojo:jaxws-maven-plugin:1.10:wsgen (generate-wsdl) WebService: Failed to execute wsgen: com/sun/mirror/apt/AnnotationProcessorFactory: com.sun.mirror.apt.AnnotationProcessorFactory -

同时放置<code>工具。jar到我的本地存储库并没有解决我的问题。

有人知道下一步该怎么做吗?

谢谢!

共有3个答案

李经国
2023-03-14

将您正在使用的wsdl生成器更改为:

<plugin>
    <groupId>org.jvnet.jax-ws-commons</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>2.2</version>
</plugin>

所有配置都是相同的,但它适用于Java 7

越姚石
2023-03-14

你可以尝试一些事情:因为这是java 7,所以将供应商更改为“Oracle公司”。

你确定你有这条路吗?${java.home}/../lib/工具. jar

出于测试的原因,您可以默认激活这个配置文件,看看是否有帮助,进一步缩小问题。

<activation>
  <activeByDefault>true</activeByDefault>
</activation>
宋建柏
2023-03-14

完整的输出(插件有问题的一些上下文)将是有用的。我不完全确定,但我认为jaxws maven插件缺少的是类,而不是您的应用程序,所以您应该添加对该插件的依赖,而不是您的应用程序。

编辑:来自注释的OP代码,以获得更好的读取/复制/粘贴能力

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>jaxws-maven-plugin</artifactId>
 <...>
 <dependencies>
  <dependency>
   <groupId>com.sun</groupId>
   <artifactId>tools</artifactId>
   <version>1.7</version>
   <scope>system</scope>
   <systemPath>${java.home}/../lib/tools.jar</systemPath>
  </dependency>
 </dependencies>
</plugin>
 类似资料:
  • 我在安装Psycopg2时遇到了麻烦。尝试时出现以下错误: 但问题是实际上在我的中;它运行起来没有任何问题: 我对这些错误感到困惑。有人能帮忙吗? 顺便说一下,我所有命令。我也在RHEL 5.5上。

  • 我使用的是NetBeans IDE 8.2。这是我正在使用的代码: 加载到cats阵列中的图像位于名为“img”的src文件夹中,编号为1-6。当我从NetBeans IDE运行程序时,它运行得非常完美;然而,当我试图在构建项目后创建的dist文件夹中执行JAR文件时,它根本不会运行。当我尝试使用命令行运行它时,我得到以下结果: 我假设问题是JAR文件无法访问图像文件,但我不知道如何修复它。如何将

  • 我已经通过libav-tools对安装了ffmpeg的应用程序进行了dockerize。该应用程序启动时没有问题,但是当Fluent-ffmpeg npm模块试图执行ffmpeg命令时出现了问题,但没有找到。当我想检查ffmpeg的版本和图像中设置的linux发行版时,我使用了命令,但它给出了以下错误: 然后我意识到,我尝试在图像或容器中运行的所有命令都会出现同样的错误。 这是我的Dockerfi

  • 但当我从詹金斯的工作中运行它时,它不在那里 path=/usr/local/sbin://usr/local/bin://usr/sbin://usr/bin://sbin://usr/games://usr/local/games_=/usr/bin/

  • 错误消息 线程“main”org.openqa.selenium.nosuchelementException:没有这样的元素:找不到元素:{“method”:“XPath”,“Selector”:“.//*[@id='TreeBox1']/div/table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[2]/tab

  • 我再次面临一个奇怪的问题,希望这里有人能帮助我。 模块的Pom如下所示: CSV路径-文件在propery files中配置如下: java配置文件的部分如下: