Подтвердить что ты не робот

Пользовательские имена пакетов cxf-codegen-plugin

Представьте себе этот сценарий.

У меня есть wsdl файл с пространством имен a/b/c, и он импортирует еще один wsdl, пространство имен которого равно m/n/o. К сожалению, оба они имеют одинаковые ComplexTypes XYZ, определенные в них. Теперь, когда я использую cxf-codegen-plugin для генерации кода Java и использую собственное имя пакета "com.qsrs.uvw", только один класс сохраняется в конечном коде, который сгенерирован. Может кто-нибудь помочь мне здесь?

4b9b3361

Ответ 1

Если вы хотите сгенерировать пакет в зависимости от пространства имен, это решение:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>yourWsdl.wsld</wsdl>
                        <extraargs>
                            <extraarg>-client</extraarg>
                            <extraarg>-verbose</extraarg>
                            <extraarg>-p</extraarg>
                            <extraarg>http://your.namespace/services/=your.package</extraarg>
                            <extraarg>-p</extraarg>
                            <extraarg>http://your.namespace2/services2/=your.package2</extraarg>
                        </extraargs>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Это <extraarg>http://your.namespace2/services2/=your.package2</extraarg> будет отображать ваше пространство имен с нужным вам пакетом.