2016-03-11 12 views
0

Я использую axis2 для повторного создания кода клиента для обновленного веб-сервиса, который мне нужно использовать, для устаревшего приложения.Axis wsdl2java maven плагин с xmlbeans не включает в себя папку с ресурсами

Будучи устаревшим приложением, я хотел бы избежать изменения уже написанного кода и повторно сгенерировать классы, поскольку они были созданы кем-ноу-хау много лет назад плагином eclipse, но на этот раз, используя maven вместо затмения.

Так что я видел, что они были получены с использованием Axis2 и XMLBeans, и я произвел конфигурацию в Maven плагин:

<plugin> 
    <groupId>org.apache.axis2</groupId> 
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
    <version>1.5.6</version> 
    <executions> 
     <execution> 
      <id>TheirsWs</id> 
      <goals> 
       <goal>wsdl2code</goal> 
      </goals> 
      <phase>generate-sources</phase> 
      <configuration> 
       <packageName>it.theirs.ws</packageName> 
       <wsdlFile>${basedir}/src/main/resources/theirWs.wsdl</wsdlFile> 
       <generateServerSide>false</generateServerSide> 
       <databindingName>xmlbeans</databindingName> 
       <unpackClasses>true</unpackClasses> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Что же теперь это очень хорошая вещь. Плагин генерирует файл .class в/ресурсов папке сгенерированные-источники/axis2/wsdl2code, однако он не добавляют мавена до конечного пакета, в результате чего ClassNotFoundException при вызове веб-сервиса.

ответ

0

была такая же проблема, я изменил Ant build.xml Buildfile из:

<target depends="pre.compile.test" name="compile.src" if="jars.ok"> 
    <javac debug="on" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true" destdir="${classes}" srcdir="${src}"> 
     <classpath refid="axis2.class.path"/> 
    </javac> 
</target> 

To:

<target depends="pre.compile.test" name="compile.src" if="jars.ok"> 
    <javac debug="on" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true" destdir="${classes}" srcdir="${src}"> 
     <classpath refid="axis2.class.path"/> 
    </javac> 
    <copy todir="${classes}"> 
     <fileset dir="${resources}"/> 
    </copy> 
</target> 

Новая задача Копировать добавить все ресурсы для целевых классов папки так созданный Jar будет включать их.

Надеюсь, это поможет.

0

Я решаю проблему, добавив папку ресурсов в JAR, используя функцию по умолчанию maven для включения и исключения папки. Решение для Вашего случая будет:

<build> 
<!-- This will the MAVEN to copy the entire folder, you can copy only the .class files --> 
<resources> 
     <resource> 
      <directory>${project.build.directory}/generated-src/resources</directory> 
      <includes> 
       <include>**/*</include> 
      </includes>  
     </resource> 
    </resources> 
<plugin> 
    <groupId>org.apache.axis2</groupId> 
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
    <version>1.5.6</version> 
    <executions> 
     <execution> 
      <id>TheirsWs</id> 
      <goals> 
       <goal>wsdl2code</goal> 
      </goals> 
      <phase>generate-sources</phase> 
      <configuration> 
       <packageName>it.theirs.ws</packageName> 
       <wsdlFile>${basedir}/src/main/resources/theirWs.wsdl</wsdlFile> 
       <generateServerSide>false</generateServerSide> 
       <databindingName>xmlbeans</databindingName> 
       <!-- I add this line just to be easy to referenciate the souce --> 
       <outputDirectory>${project.build.directory}/generated-src</outputDirectory> 
       <unpackClasses>true</unpackClasses> 
      </configuration> 
     </execution> 
    </executions> 
</plugin>