2008-12-02 3 views
5

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

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

 <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.

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

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

ответ

0

Возможно, 'src' является частью $ {basedir}?

0

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

src не должен присутствовать в этой части пути.

+0

Это было в ответ на leppie? Если да, используйте комментарии в будущем. – Adam 2010-06-23 17:41:01

9

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

< Просто используйте flattenFiles > истинные </flattenFiles > - что должно решить вашу проблему :-)

+0

Спасибо, он действительно работает, но вы можете объяснить, почему он работает? – Confusion 2010-01-19 10:34:55

+0

Спасибо @ Jo Ehm, это именно то, что мне нужно было знать. – Joe 2015-03-10 17:16:25

2

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

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

0

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

[1] : Список почтовых отправлений]% 20indrit + страница: 1 + mid: a34wbp7l3pljagsz ​​+ состояние: результаты