2015-10-07 147 views
0

我使用Maven 3.3.3和maven-jaxb2-plugin版本0.12.1从XSD模式生成java类。地址在XSD是返回HTTP 302和插件抛出:Maven maven-jaxb2-plugin和HTTP 302

[ERROR] Error while parsing schema(s).Location [ http://www.gzs.si/e-poslovanje/sheme/eSlog_1-5_EnostavniRacun_signature.xsd{1,30}]. 
org.xml.sax.SAXParseException; systemId: http://www.gzs.si/e-poslovanje/sheme/eSlog_1-5_EnostavniRacun_signature.xsd; lineNumber: 1; columnNumber: 30; s4s-elt-character: Non-whitespace characters are not allowed in schema elements o 
ther than 'xs:appinfo' and 'xs:documentation'. Saw 'Document Moved'. 

是可以指定,又如何,该XJC编译器符合302到正确的链接或不去,并尝试下载XSD?

+0

如何使用浏览器浏览XSD,检查它重定向到哪里并更新POM中的URL? – Daniel

+0

嗯,我该怎么做,因为现在我没有在我的朋友。除了XSD有一个链接到另一个XSD也返回302 – kovica

回答

0

我解决了这个用一个catalog.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>                                             
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">                                       
    <rewriteSystem systemIdStartString="http://www.gzs.si" rewritePrefix="https://www.gzs.si"/>                                   
</catalog> 

,然后在我的pom.xml:

<plugin> 
       <groupId>org.jvnet.jaxb2.maven2</groupId> 
       <artifactId>maven-jaxb2-plugin</artifactId> 
       <version>0.12.1</version> 
       <executions> 
        ... 
       </executions> 
       <configuration> 
        <strict>false</strict> 
        <catalog>src/main/resources/jaxb/catalog.xml</catalog> 
        <catalogResolver>org.jvnet.jaxb2.maven2.resolver.tools.ClasspathCatalogResolver</catalogResolver> 
        <generateDirectory>${project.build.directory}/generated-sources/xjc</generateDirectory> 
        <verbose>true</verbose> 
       </configuration> 
      </plugin> 
0

免责声明:这里maven-jaxb2-plugin的作者。

你打以下问题:

这是by design

您的解决方案是catalogs是正确的。但你很可能不需要ClasspathCatalogResolver

+0

伟大的。如果我找到了解决方案,那么这意味着你们有很好的文档。 :)我在WS-I文档中发现服务器应该返回307而不是30,但不幸的是,我无法控制该服务器。 – kovica