Maven maven-jaxb2-plugin and HTTP 302
我正在使用 Maven 3.3.3 和 maven-jaxb2-plugin 版本 0.12.1 从 XSD 模式生成 java 类。 XSD 所在的地址返回 HTTP 302 并且插件抛出:
1 2 3 | [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?
免责声明:这里是 maven-jaxb2-plugin 的作者。
您遇到了以下问题:
- URLConnection 不遵循重定向
这是设计使然。
您的目录解决方案是正确的。但你很可能不需要
我通过使用 catalog.xml:
解决了这个问题
1 2 3 4 | <?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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> 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> |