2012-03-05 37 views
11

Al trabajar en mi JDK 1.6.0_16, generé mis clases de stub desde un WSDL usando Apache CXF 2.5.2, que usa el más reciente jaxb-api 2.2. Sé que es posible tener que utilizar jaxb-API 2.1, pero con el fin de evitar problemas de compatibilidad, yo preferiría tener que utilizar la versión actual. Desde mis características del JDK 2.1 jaxb, la generación falla con el mensaje siguiente:Incluir JAXB usando Maven

error at @XmlElementRef(name = "protocol", namespace = "urn:ch.beo.emc", type = JAXBElement.class, required = false) 

Por lo tanto, he intentado hacer experta incluyen la API más reciente jaxb y impl usando las siguientes dependencias.

<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.2.5</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.5</version> 
</dependency> 

Mientras que los dos frascos se han agregado a Maven Dependencias en Eclipse, el mensaje de error persiste tanto en Eclipse y Maven build.

¿Cómo puedo incluir estos frascos en mi Maven build y hacer que se utilizan tanto en Eclipse y en el sistema de destino?


PD: por favor, encontrar el POM completa aquí:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>ch.beo</groupId> 
    <artifactId>emc.front</artifactId> 
    <version>3.1.3-SNAPSHOT</version> 
    <repositories> 
     <repository> 
      <id>jboss</id> 
      <name>JBoss</name> 
      <url>http://repository.jboss.org/maven2/</url> 
     </repository> 
     <repository> 
      <id>freehep</id> 
      <name>Freehep</name> 
      <url>http://java.freehep.org/maven2</url> 
     </repository> 
     <repository> 
      <id>JCurl</id> 
      <url>http://jcurl.berlios.de/m2/repo</url> 
     </repository> 
     <repository> 
      <id>JavaNet</id> 
      <url>http://download.java.net/maven/2/</url> 
     </repository> 
     <repository> 
      <id>djmaven2</id> 
      <url>http://www.fdvs.com.ar/djmaven2</url> 
      <name>DynamicJasper public Repository</name> 
     </repository> 
    </repositories> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <build> 
     <defaultGoal>compile</defaultGoal> 
     <sourceDirectory>src/main/java</sourceDirectory> 
     <testSourceDirectory>src/test/java</testSourceDirectory> 
     <outputDirectory>target/main</outputDirectory> 
     <testOutputDirectory>target/test</testOutputDirectory> 
     <resources> 
      <resource> 
       <targetPath>ch/beo/emc/front/resources</targetPath> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>src/main/resources/security/jarsign</exclude> 
       </excludes> 
      </resource> 
     </resources> 
     <testResources> 
      <testResource> 
       <targetPath>ch/beo/emc/front/resources</targetPath> 
       <directory>src/test/resources</directory> 
      </testResource> 
      <testResource> 
       <targetPath>ch/beo/emc/front/resources</targetPath> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>src/main/resources/security/jarsign</exclude> 
       </excludes> 
      </testResource> 
     </testResources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>aspectj-maven-plugin</artifactId> 
       <version>1.1</version> 
       <configuration> 
        <complianceLevel>1.6</complianceLevel> 
        <aspectLibraries> 
         <aspectLibrary> 
          <groupId>org.springframework</groupId> 
          <artifactId>spring-aspects</artifactId> 
         </aspectLibrary> 
        </aspectLibraries> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>test-compile</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>ch.beo.emc.front.factory.Front</mainClass> 
          <addClasspath>true</addClasspath> 
          <classpathPrefix>lib</classpathPrefix> 
         </manifest> 
        </archive> 
        <descriptors> 
         <descriptor>assembly.xml</descriptor> 
        </descriptors> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <includes> 
         <include>ch/beo/emc/front/AllTests.java</include> 
        </includes> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>1.4</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <createDependencyReducedPom>false</createDependencyReducedPom> 
          <transformers> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <mainClass>ch.beo.emc.front.factory.Front</mainClass> 
           </transformer> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>META-INF/spring.handlers</resource> 
           </transformer> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>META-INF/spring.schemas</resource> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>sign</id> 
         <phase>package</phase> 
         <goals> 
          <goal>sign</goal> 
         </goals> 
         <configuration> 
          <keystore>src/main/resources/security/jarsign/server.pfx</keystore> 
          <type>pkcs12</type> 
          <alias>beo-it.ch</alias> 
          <storepass>****</storepass> 
          <signedjar>${project.build.directory}/signed/${project.build.finalName}.jar</signedjar> 
          <verify>true</verify> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>com.l2fprod</groupId> 
      <artifactId>l2fprod-common-all</artifactId> 
      <version>6.9.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.swixml</groupId> 
      <artifactId>swixml</artifactId> 
      <version>1.5.144</version> 
     </dependency> 
     <dependency> 
      <groupId>net.java.balloontip</groupId> 
      <artifactId>balloontip</artifactId> 
      <version>1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.swinglabs</groupId> 
      <artifactId>swingx</artifactId> 
      <version>1.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aspects</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>2.5.6.SEC01</version> 
      <scope>test</scope> 
      <exclusions> 
       <exclusion> 
        <artifactId>junit</artifactId> 
        <groupId>junit</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>jfree</groupId> 
      <artifactId>jfreechart</artifactId> 
      <version>1.0.9</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.4</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.java.jnlp</groupId> 
      <artifactId>jnlp</artifactId> 
      <version>6.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.thoughtworks.xstream</groupId> 
      <artifactId>xstream</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-lang</groupId> 
      <artifactId>commons-lang</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jscience</groupId> 
      <artifactId>jsr-275</artifactId> 
      <version>0.8.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.7</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>3.7.4</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-beanutils</groupId> 
        <artifactId>commons-beanutils</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-collections</groupId> 
        <artifactId>commons-collections</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>jfree</groupId> 
        <artifactId>jcommon</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>jfree</groupId> 
        <artifactId>jfreechart</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>xml-apis</groupId> 
        <artifactId>xml-apis</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>bouncycastle</groupId> 
        <artifactId>bcmail-jdk14</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>bouncycastle</groupId> 
        <artifactId>bcprov-jdk14</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>bouncycastle</groupId> 
        <artifactId>bctsp-jdk14</artifactId> 
       </exclusion> 
       <exclusion> 
        <artifactId>jdtcore</artifactId> 
        <groupId>eclipse</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.eclipse.jdt.core.compiler</groupId> 
      <artifactId>ecj</artifactId> 
      <version>3.5.1</version> 
     </dependency> 
     <dependency> 
      <groupId>ar.com.fdvs</groupId> 
      <artifactId>DynamicJasper</artifactId> 
      <version>3.1.2</version> 
      <exclusions> 
       <exclusion> 
        <groupId>jasperreports</groupId> 
        <artifactId>jasperreports</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.xml.bind</groupId> 
      <artifactId>jaxb-impl</artifactId> 
      <version>2.2.5</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

¿Cuál es tu artefacto objetivo? ¿WAR o JAR o EAR? – artbristol

+0

Es un JAR, en realidad. Estoy usando maven-jar-plugin y maven-shade-plugin para envolverlo todo. –

+0

Se puede publicar el plugin de la configuración de su POM donde se está utilizando CXF? – nwinkler

Respuesta

12

Me acabo de encontrar con este tema con jaxb también; Dios, amo a Maven (no). Así es como resolví el problema.

Añadir el repositorio central de

 
<repository> 
    <id>central</id> 
    <url>http://repo.maven.apache.org/maven2/</url> 
</repository> 

modificar la versión de la API y impl

 
<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.2.7-SNAPSHOT</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.5-b10</version> 
</dependency> 
+0

Desafortunadamente, eso no ayuda con mi compilación. De hecho, una versión 2.2.7-SNAPSHOT no está disponible, aunque incluí el repositorio. –

+1

Esta es una de las cosas que odio sobre la gestión de deps en maven. Lo que hago cuando esto sucede es mirar directamente el repositorio en un navegador para encontrar la versión disponible actualmente si está permitido o usar http://search.maven.org/#search%7Cga%7C1%7Cjaxb-api –

+0

De lo que ver en la búsqueda, 2.2.6 está disponible –

1

Añadir

<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.2.12</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.11</version> 
</dependency> 

y

<repositories> 
    <repository> 
     <id>central</id> 
     <url>http://repo.maven.apache.org/maven2/</url> 
    </repository> 
</repositories> 
Cuestiones relacionadas