1

我进行了从 Ant 到 Maven 项目的迁移,但我遇到的问题让我很困惑:

  1. 在我的 Ant bild.xml 中,我在 wsdl2java tasc 中有以下参数:

        <arg value="-ns2p" />
        <arg value="${wsdl-ns-binding}" />
    

    我想在我的 pom.xml 中做同样的事情。但是没用!!不管我怎么尝试..我做错了什么???这里是 WSDL2Java 插件定义的例子:

        <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>1.6.2</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                    <configuration>
                        <packageName>ru.domain.ws.services.persistence.etb.mortgage.axis2.jaxb.server</packageName>
                        <wsdlFile>${wsdl-home}/ETB_MortgagePersistence.wsdl</wsdlFile>
                        <outputDirectory>${basedir}/src/main/generated</outputDirectory>        
                        <flattenFiles>true</flattenFiles>
                        <databindingName>jaxbri</databindingName>
                        <overWrite>true</overWrite> 
                <!--    <namespaceToPackage> 
                            http://ws.domain.ru/persistence/ETB/mortgage/wsdl=ru.domain.ws.services.persistence.etb.mortgage.wsdl
                        </namespaceToPackage> -->
    
                        <wsdlOptions>
                            <wsdlOption>
                                 <extraargs>
                                    <extraarg>-ns2p</extraarg>
                                    <extraarg>http://ws.domain.ru/persistence/ETB/mortgage/wsdl=ru.domain.ws.services.persistence.etb.mortgage.wsdl</extraarg>  
                                 </extraargs>                                
                            </wsdlOption>
                        </wsdlOptions>
    
                        <options>
                            <property>
                                <name>bindingFileName</name>
                                <value>${jaxb-binding-path}</value>
                            </property>
                        </options> 
    
                    </configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.apache.axis2</groupId>
                    <artifactId>axis2-jaxbri</artifactId>
                    <version>1.6.2</version>
                </dependency>
            </dependencies>
        </plugin>
    

${wsdl-ns-binding} 变量是http://ws.domain.ru/persistence/ETB/mortgage/wsdl=ru.domain.ws.services.persistence.etb.mortgage.wsdl

4

1 回答 1

0

Try this layout (specifying the wsdl file inside the wsdlOptions)

<plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
        <version>1.6.2</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${wsdl-home}/ETB_MortgagePersistence.wsdl</wsdl>
                        <extraargs>  
                            <extraarg>-ns2p</extraarg>  
                            <extraarg>http://ws.domain.ru/persistence/ETB/mortgage/wsdl=ru.domain.ws.services.persistence.etb.mortgage.wsdl</extraarg>
                        </extraargs>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>
于 2012-12-18T14:57:12.557 回答