WSDL2Code (Maven) автоматически генерирует поврежденные классы (пакеты)

В настоящее время я занимаюсь заменой фреймворка IBM WebService на Axis2. При генерации кода из файла WSDL я использую плагин Maven WSDL2Code. Однако созданный код всегда неверен. Или, скорее, имена пакетов всегда неверны, что, в свою очередь, делает каждый вызываемый метод не вызываемым (создавая еще больше ошибок, до 10.000+ ошибок в eclipse).

Вот пример того, что на самом деле происходит (это просто пример, который я сделал специально, чтобы получить совет):

      <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>1.4.1</version>
            <executions>
                <execution>
                    <id>Test</id>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                    <configuration>
                        <packageName>test.testpackage</packageName>
                        <databindingName>xmlbeans</databindingName>
                        <wsdlFile>${basedir}/wsdl/service.wsdl</wsdlFile>
                        <outputDirectory>${basedir}/testdirectory</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Теоретически это должно сгенерировать код с именем пакета «test.testpackage» в каталоге testdirectory / test / testpackage. Однако вместо этого он создает следующий пакет: Src.test.testpackage в каталоге testdirectory.src.test.testpackage. Он всегда добавляет «src» как к имени пакета, так и к каталогу - если я изменю имя пакета на src.test.testpackage, он сгенерирует следующий пакет: src.src.test.testpackage.

Это, конечно, приводит к огромной проблеме, потому что каждый сгенерированный файл содержит следующую ошибку: «Объявленный пакет« src.test.testpackage »не соответствует ожидаемому пакету« src.src.test.testpackage »

Я здесь в полной растерянности. Я просто не могу найти причину, по которой он должен везде добавлять "src". Я заметил автоматически сгенерированный файл build.xml, содержащий значение с именем sourcedirectory = x / src (или что-то подобное), но я ничего не могу сделать, чтобы повлиять на это значение (попытка изменить его, а затем сохранить файл не имеет значения , очевидно, поскольку он просто сгенерирован снова при следующем запуске maven).

Да, и я обычно использую команду "mvn clean install" и версию 1.4.1 WSDL2Code, так что это не одна из старых ошибок wsdl2code: wsdl2code.

Если у кого-то есть представление о том, что на самом деле здесь не так, я был бы очень признателен.

Заранее спасибо.


person Community    schedule 02.12.2008    source источник


Ответы (5)


Версия 1.4.1 имеет еще несколько параметров конфигурации, которые на самом деле не документированы (посмотрите исходный код org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo) ...

Просто используйте ‹flattenFiles› true ‹/flattenFiles› - это должно решить вашу проблему :-)

person Community    schedule 18.02.2009
comment
Спасибо, это действительно работает, но вы можете объяснить, почему это работает? - person Confusion; 19.01.2010
comment
Спасибо @Jo Ehm, это именно то, что мне нужно было знать. - person Joe; 10.03.2015

Это довольно старый вопрос, поэтому я не знаю, есть ли у вас проблема ...

Я бы рекомендовал вместо этого использовать Axistools Maven Plugin, в нашем случае он отлично работал.

person Thomas Marti    schedule 06.05.2009

Может быть, 'src' является частью $ {basedir}?

person leppie    schedule 02.12.2008

Я не боюсь. Даже если бы это было так, странная проблема не должна возникнуть - тогда путь будет правильным: testdirectory / src / test / testpackage, что не вызовет проблем с именем пакета. Проблема теперь возникает из-за того, что он помещается в каталог, которого пакет не ожидает - он ожидает $ {basedir} /testdirectory/insert.package.here.divided.by./, но вместо этого получает $ {basedir} / testdirectory / src /insert.package.here.divided.by./.

В этой части пути не должно быть src.

person Community    schedule 02.12.2008
comment
Это было в ответ на леппи? В таком случае используйте комментарии в будущем. - person Adam; 23.06.2010

Это связано с тем "гением" maven / axis2 (или пользователем), который практически принимает решения за вас ... см. Это: [Запись в списке рассылки Axis2] [1]

[1]: http://markmail.org/search/?q=[Axis2]+indrit#query:[Axis2 Запись в списке рассылки]% 20indrit + page: 1 + mid: a34wbp7l3pljagsz ​​+ state: results

person Indrit    schedule 29.09.2009