首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有xmlbean的Axis wsdl2java maven插件不包括资源文件夹

带有xmlbean的Axis wsdl2java maven插件不包括资源文件夹
EN

Stack Overflow用户
提问于 2016-03-11 17:01:27
回答 2查看 1.6K关注 0票数 1

我使用axis2为我需要使用的更新use服务重新生成客户端代码,用于遗留应用程序。

作为一个遗留应用程序,我希望避免更改已经编写的代码,并在许多年前使用eclipse插件生成类时重新生成它们,但这次使用的是maven而不是eclipse。

因此,我看到它们是使用axis2和xmlbean生成的,并在maven插件中生成了配置:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.5.6</version>
    <executions>
        <execution>
            <id>TheirsWs</id>
            <goals>
                <goal>wsdl2code</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <packageName>it.theirs.ws</packageName>
                <wsdlFile>${basedir}/src/main/resources/theirWs.wsdl</wsdlFile>
                <generateServerSide>false</generateServerSide>
                <databindingName>xmlbeans</databindingName>
                <unpackClasses>true</unpackClasses>
            </configuration>
        </execution>
    </executions>
</plugin>

现在发生的是一件非常美好的事情。该插件在generated/ axis2 / wsdl2code / resource文件夹中生成一个.class文件,但是maven没有将它添加到最终包中,这将导致在调用when服务时出现ClassNotFoundException

EN

回答 2

Stack Overflow用户

发布于 2017-03-30 15:00:13

我通过使用包含和排除文件夹的maven默认特性将资源文件夹添加到JAR中来解决这个问题。解决你的问题的办法是:

代码语言:javascript
复制
<build>
<!-- This will the MAVEN to copy the entire folder, you can copy only the .class files -->
<resources>
        <resource>
            <directory>${project.build.directory}/generated-src/resources</directory>
            <includes>
                 <include>**/*</include>
            </includes>     
        </resource>
    </resources>
<plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.5.6</version>
    <executions>
        <execution>
            <id>TheirsWs</id>
            <goals>
                <goal>wsdl2code</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <packageName>it.theirs.ws</packageName>
                <wsdlFile>${basedir}/src/main/resources/theirWs.wsdl</wsdlFile>
                <generateServerSide>false</generateServerSide>
                <databindingName>xmlbeans</databindingName>
                <!-- I add this line just to be easy to referenciate the souce -->
                <outputDirectory>${project.build.directory}/generated-src</outputDirectory>
                <unpackClasses>true</unpackClasses>
            </configuration>
        </execution>
    </executions>
</plugin>

票数 1
EN

Stack Overflow用户

发布于 2016-04-12 11:15:23

由于同样的问题,我将Ant build.xml构建文件更改为:

代码语言:javascript
复制
<target depends="pre.compile.test" name="compile.src" if="jars.ok">
    <javac debug="on" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true" destdir="${classes}" srcdir="${src}">
        <classpath refid="axis2.class.path"/>
    </javac>
</target>

至:

代码语言:javascript
复制
<target depends="pre.compile.test" name="compile.src" if="jars.ok">
    <javac debug="on" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true" destdir="${classes}" srcdir="${src}">
        <classpath refid="axis2.class.path"/>
    </javac>
    <copy todir="${classes}">
        <fileset dir="${resources}"/>
    </copy>
</target>

新的复制任务将所有资源添加到目标类文件夹中,这样生成的Jar将包含它们。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35945891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档