apache cxf-codegen-plugin относительно wsdl2java wsdlLocation

Я могу использовать классы генерации с относительным wsdlLocation, когда я указываю каждый файл, например <wsdlOptions> <wsdlOption> <wsdl>${basedir}/src/main/resources/sample.wsdl</wsdl> <wsdlLocation>classpath:wsdl/sample.wsdl</wsdlLocation> </wsdlOption> </wsdlOptions>

Вместо этого я хотел бы использовать <wsdlRoot>, поэтому мне не нужно указывать каждый wsdl, для которого нужно генерировать классы.

E.g.

<wsdlRoot>${basedir}/src/main/resources/wsdl</wsdlRoot> <includes> <include>*.wsdl</include> </includes>

Это работает для создания классов для каждого wsdl в каталоге, однако wsdlLocation в сгенерированном классе — это абсолютный путь к тому месту, где находится wsdl на моей машине. Я бы хотел относительный путь, чтобы код был более переносимым. Можно ли указать относительное wsdlLocation при использовании wsdlRoot?

Спасибо


person mav    schedule 04.10.2016    source источник
comment
Вы нашли решение для этого? У меня только что была эта проблема. Я не хочу указывать каждый файл .wsdl, и мне все равно нужно установить для wsdlLocation относительный путь к классам.   -  person oli-ver    schedule 19.02.2018


Ответы (1)


Вы можете указать дополнительную опцию -wsdlLocation с пустым значением. В сгенерированном коде XXX_Service написано WSDL_LOCATION = null;.

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>3.2.4</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java</sourceRoot>
                <wsdlRoot>${basedir}/src/main/webapp/WEB-INF/wsdl/</wsdlRoot>
                <defaultOptions>
                    <defaultExcludesNamespace>true</defaultExcludesNamespace>
                    <extraargs>
                        <extraarg>-wsdlLocation</extraarg>
                        <extraarg> </extraarg>
                    </extraargs>
                </defaultOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Вы можете найти аналогичный отрывок из pom.xml моего предыдущего проекта CXF здесь: https://github.com/htr3n/loan-approval-portal/blob/master/pom.xml.

person Alex    schedule 07.12.2018