java - JiBX 框架 jar 不在类路径中

标签 java xml soap maven apache-axis

我有一个 Axis2 的 Maven 项目,我正在尝试使用 JiBX 作为代码生成引擎。 运行 wsdl2code -d jibx 有效,但将其与 Maven 构建过程集成不起作用。 我已经搜索过,但找到的所有结果都没有任何回复。 我可以做什么来纠正这个错误? 我认为 Maven 会处理依赖关系。

Maven 输出:

[INFO] [axis2-wsdl2code:wsdl2code {execution: EchoWS}]
Retrieving document at 'http://localhost:8080/EchoWS/EchoWS?wsdl'.
java.lang.RuntimeException: JiBX framework jars not in classpath
        at org.apache.axis2.wsdl.codegen.extension.JiBXExtension.engage(JiBXExtension.java:57)
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:246)
        at org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo.execute(WSDL2CodeMojo.java:567)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] java.lang.RuntimeException: JiBX framework jars not in classpath

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: java.lang.RuntimeException: JiBX framework jars not in classpath
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: java.lang.RuntimeException: JiBX framework jars not in classpath
        at org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo.execute(WSDL2CodeMojo.java:574)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        ... 17 more
Caused by: org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: JiBX framework jars not in classpath
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:293)
        at org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo.execute(WSDL2CodeMojo.java:567)
        ... 19 more
Caused by: java.lang.RuntimeException: JiBX framework jars not in classpath
        at org.apache.axis2.wsdl.codegen.extension.JiBXExtension.engage(JiBXExtension.java:57)
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:246)
        ... 20 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Jan 31 18:06:17 CET 2012
[INFO] Final Memory: 20M/172M
[INFO] ------------------------------------------------------------------------

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <!-- $Id$ -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example.dkon.project</groupId>
    <artifactId>omais-ws</artifactId>
    <packaging>jar</packaging>
    <version>${omais-dkon-version}</version>
    <name>omais WS</name>
    <description>
        The omais application webservices.
    </description>
    <parent>
        <groupId>com.example.dkon</groupId>
        <artifactId>omais-parent</artifactId>
        <version>DKON-1.0-SNAPSHOT</version>
    </parent>
    <properties>
        <pmdRuleSetDir>..</pmdRuleSetDir>
    </properties>
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.13</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.3</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb-api</artifactId>
            <version>3.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
            <version>1.0.1B</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jboss</groupId>
            <artifactId>jbossws-jboss50</artifactId>
            <version>2.0.1.GA</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>policy</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2</artifactId>
            <version>1.6.1</version>
        </dependency>

        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-run</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-bind</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jibx</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ws.commons.axiom</groupId>
            <artifactId>axiom</artifactId>
            <version>1.2.7</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.apache.ws.commons.axiom</groupId>
            <artifactId>axiom-impl</artifactId>
            <version>1.2.13-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
                <version>1.6.1</version>
                <executions>
                    <execution>
                        <id>EchoWS</id>
                        <goals>
                            <goal>wsdl2code</goal>
                        </goals>
                        <configuration>
                            <packageName>com.example.dkon.application</packageName>
                            <wsdlFile>http://localhost:8080/omais/EchoWS/EchoWS?wsdl</wsdlFile>
                            <unwrap>true</unwrap>
                            <unpackClasses>true</unpackClasses>
                            <databindingName>jibx</databindingName>
                        </configuration>
                    </execution>

                    <execution>
                        <id>DocumentFacadeWS</id>
                        <goals>
                            <goal>wsdl2code</goal>
                        </goals>
                        <configuration>
                            <packageName>com.example.dkon.dkon.application</packageName>
                            <wsdlFile>http://localhost:8080/omais/DocumentFacadeWS/DocumentFacadeWS?wsdl</wsdlFile>
                            <unwrap>true</unwrap>
                            <unpackClasses>true</unpackClasses>
                            <databindingName>jibx</databindingName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

最佳答案

您需要将 JiBX 依赖项添加到插件配置中:

  <plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.6.1</version>
    <dependencies>
      <dependency>
        <groupId>org.jibx</groupId>
        <artifactId>jibx-run</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>org.jibx</groupId>
        <artifactId>jibx-bind</artifactId>
        <version>1.2</version>
      </dependency>
    </dependencies>
    ...
  </plugin>

关于java - JiBX 框架 jar 不在类路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9084125/

相关文章:

java - 用于在 Java 中构建 SOAP Web 服务客户端的推荐库

java - 我有一个用于生成特定长度的字符串排列的代码,它不适用于 abcdefghijklmnopqrstuvwxyz 和 7 的输入

xml - 如何从 dateTime 值中获取时间?

Java gc 不会自动清理内存

java - Android按钮onClick在xml中找不到关联方法

java - 在 JAVA 中解析 XML 命名空间(服务器响应)

web-services - 比较和对比 REST 和 SOAP Web 服务?

java - 手动验证 XML 签名

java - NetBeans IDE maven项目无法解决依赖关系

java - 为什么在调用 FinishAfterTransition 时会抛出 NoSuchMethodError?