2013-02-15 3 views
1

Я пытаюсь создать Java-класс из WSDL с помощью maven cxf-codegen-plugin, но когда я пытаюсь это сделать, он просто показывает ошибку и не генерирует классы.Создание Java-класса из WSDL

Я не могу понять, почему у меня эта ошибка, мой pom-файл выглядит хорошо для меня.

Мои pom.xml выглядит

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>6.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.2.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxws</artifactId> 
     <version>2.7.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http-hc</artifactId> 
     <version>2.7.3</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-bundle</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <compilerArguments> 
        <endorseddirs>${endorsed.dir}</endorseddirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.1</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>6.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-codegen-plugin</artifactId> 
      <version>2.7.3</version> 

      <executions> 
       <execution> 
        <id>generate-sources</id> 
        <phase>generate-sources</phase> 
        <configuration> 
         <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
         <wsdlOptions> 
          <wsdlOption> 
           <wsdl>${basedir}/src/main/resources/CurrentTimeService.wsdl</wsdl> 
          </wsdlOption> 
         </wsdlOptions> 
        </configuration> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <schemaIncludes> 
          <include>jaxb/try/*.xsd</include> 
         </schemaIncludes> 
         <episodeFile>${project.build.directory}/generated-sources/xjc/META-INF/jaxb-try.episode</episodeFile> 
        </configuration> 
        <id>jaxb-generate-try</id> 
       </execution> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <schemaIncludes> 
          <include>jaxb/try/*.xsd</include> 
         </schemaIncludes> 
         <episodeFile>${project.build.directory}/generated-sources/xjc/META-INF/jaxb-try.episode</episodeFile> 
         <generatePackage>q1.q2</generatePackage> 
        </configuration> 
        <id>jaxb-generate-try_1</id> 
       </execution> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <schemaIncludes> 
          <include>jaxb/try2/*.xsd</include> 
         </schemaIncludes> 
         <episodeFile>${project.build.directory}/generated-sources/xjc/META-INF/jaxb-try2.episode</episodeFile> 
        </configuration> 
        <id>jaxb-generate-try2</id> 
       </execution> 
      </executions> 
      <configuration> 
       <catalog>src/main/resources/jaxb/catalog.xml</catalog> 
       <catalogResolver>org.jvnet.jaxb2.maven2.resolver.tools.ClasspathCatalogResolver</catalogResolver> 
       <forceRegenerate>true</forceRegenerate> 
       <generateDirectory>${project.build.directory}/generated-sources/xjc</generateDirectory> 
       <verbose>true</verbose> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Когда я строю проект с Maven, я вижу следующую ошибку

Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.7.3:wsdl2java (generate-sources) on project WebServicesTest: org.xml.sax.SAXParseException; systemId: jar:file:/C:/Users/user/.m2/repository/com/sun/xml/bind/jaxb-xjc/2.2.6/jaxb-xjc-2.2.6.jar!/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber: 86; columnNumber: 48; src-resolve: Cannot resolve the name 'xjc:globalJavaType' to a(n) 'group' component. 
+0

«xjc: globalJavaType», кажется, проблема JAXB, если это помогает ... – Puce

+0

POM не выглядит нормально для меня _... у вас есть две разные версии CXF, 2.7.3 и 2.5.1. Также предоставляйте файлы WSDL и XSD. –

+0

С обоими версиями 2.7.3 такая же проблема – Olexii

ответ

4

Посмотрите на этот пост:

Cannot resolve the name 'xjc:globalJavaType' in jaxb-xjc-2.2.5-2.jar

У вас могут быть нелатинские символы в p на ваш местный Maven репо. Попробуйте изменить файл settings.xml, чтобы установить в какой-либо другой каталог, содержащий только латинские символы, и посмотреть, помогает ли это.

+0

Спасибо, я постараюсь изменить свое местоположение репо. – Olexii

+0

Отличная замена на латинские символы в локальном репозитории maven! Спасибо! – Olexii

+0

Без проблем, рад, что я мог бы помочь! :) –

Смежные вопросы