2008-12-02 10 views
5

Actualmente estoy en el proceso de reemplazar la infraestructura de IBM WebService con Axis2. Al generar el código del archivo WSDL, utilizo el plugin Maven WSDL2Code. Sin embargo, el código creado siempre es incorrecto. O más bien, los nombres de los paquetes siempre son incorrectos, lo que a su vez hace que cada método se llame nocable (creando aún más errores, hasta más de 10.000 errores en eclipse).WSDL2Code (Maven) autogenera clases dañadas (paquetes)

He aquí un ejemplo de lo que realmente está pasando (esto es sólo un ejemplo que hice específicamente para obtener consejos):

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

En teoría, esto debería generar código con el nombre del paquete "test.testpackage" en el directorio testdirectory/test/testpackage. Sin embargo, en su lugar crea el siguiente paquete: Src.test.testpackage en el directorio testdirectory.src.test.testpackage. Siempre agrega un "src" al nombre del paquete y al directorio: si cambio el nombre del paquete a src.test.testpackage, generará el siguiente paquete: src.src.test.testpackage.

Esto, por supuesto, conduce a un gran problema, ya que cada archivo generado tiene el siguiente error: "El paquete declarada 'src.test.testpackage' no coincide con el esperado paquete de " src.src.test. testpackage "

Estoy completamente perdido aquí. Simplemente no puedo encontrar ninguna razón por la que debería agregar" src "en todas partes. He notado un archivo build.xml generado automáticamente que contiene un valor llamado sourcedirectory = x/src (o algo similar), pero no hay nada que pueda hacer para afectar este valor (intentar cambiarlo y luego guardar el archivo no hace ninguna diferencia, obviamente, ya que solo se genera nuevamente la próxima vez que ejecuto maven).

Ah, y generalmente uso el comando "mvn clean install" y la versión 1.4.1 de WSDL2Code, por lo que no es uno de los viejos wsdl2code: wsdl2code bugs.

Si alguien tiene alguna idea de lo que está realmente mal aquí, lo agradecería muchísimo.

Gracias de antemano.

Respuesta

0

¿Tal vez 'src' es parte de $ {basedir}?

0

Me temo que no. Incluso si lo fuera, el extraño problema no debería ocurrir entonces: la ruta sería correcta siendo testdirectory/src/test/testpackage, sin causar ningún problema con el nombre del paquete. El problema ahora surge porque se coloca en un directorio que el paquete no espera: espera $ {basedir} /testdirectory/insert.package.here.divided.by./, pero en su lugar obtiene $ {basedir}/testdirectory/src /insert.package.here.divided.by./.

El src no debería estar presente en esa parte de la ruta.

+0

¿Fue esto en respuesta a leppie? Si es así, usa comentarios en el futuro. – Adam

9

Versión 1.4.1 tiene algunas más opciones de configuración que no están muy documentados (echar un vistazo a la fuente de org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo) ...

sólo tiene que utilizar <flattenFiles> verdaderos </flattenFiles > - que debe resolver su problema :-)

+0

Gracias, de hecho funciona, pero ¿puedes explicar por qué funciona? – Confusion

+0

Gracias @Jo Ehm, esto es exactamente lo que necesitaba saber. – Joe

2

esta pregunta es bastante viejo, así que no saben si sigue teniendo el problema ...

, recomendaría usando Axistools Maven Plugin en su lugar, funcionó grea t en nuestro caso.

+0

Sugerencia: axistools solo usa Axis1 y no Axis2 ... – Lonzak

0

Esto está relacionado con los Maven "genio" de (o usuario)/axis2 que prácticamente toma decisiones por usted ... ver esto: [Axis2 entrada de la lista de correo] [1]

[1] : http://markmail.org/search/?q=[Axis2]+indrit#query:[Axis2 Entrada de la lista de correo]% 20indrit + página: 1 + medio: a34wbp7l3pljagsz ​​+ estado: resultados

Cuestiones relacionadas