java - Jenkins 上抛出 SAXException

标签 java xml maven jenkins sax

我遇到了一个奇怪的问题。我正在尝试创建 XML 架构来验证文件。我在我的函数中执行以下操作:

 String schemaFilename = ApplicationConfiguration.xsdConfiguration.getTypeMappings().get(fileType);
        ClassLoader classLoader = getClass().getClassLoader();
        File schemaFile = new File(classLoader.getResource(ApplicationConfiguration.xsdConfiguration.getXsdSchemasLocation()+schemaFilename).getFile());

        final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Schema schema = null;
        try
        {
            schema = schemaFactory.newSchema(schemaFile);
        }
        catch (SAXException e) {
            logger.error("Could not instantiate XSD schema from file: {}", schemaFile.getName());
            e.printStackTrace();
            validXML = false;
        }

当我通过 Intellij 或 Maven 在 Windows 上运行测试时,一切正常。当我尝试在 Jenkins 上构建并在 Centos 上运行时,我收到 SAXExceptions(已编辑的堆栈跟踪)

org.xml.sax.SAXParseException; systemId: file:/...myfile.xsd; lineNumber: 48; columnNumber: 39; src-resolve: Cannot resolve the name 'AnElement' to a(n) 'type definition' component.

对可能出现的问题有什么想法吗?

最佳答案

您可以尝试复制您的 xsd 内容并使用 this one 等工具在本地验证它。并检查是否有无效内容。 如果是,则说明 CI 生成的 xsd 有问题,需要检查代码。

关于java - Jenkins 上抛出 SAXException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43345456/

相关文章:

android - 为标记 LinearLayout 找到错误意外的命名空间前缀 "xmlns"

java - Spring项目添加 "spring-boot-starter-data-jpa"依赖时出错

Maven 发布 :prepare fails with "scm connection or developerConnection must be specified"

java - 创建 WebSecurityConfiguration 中定义的名称为 'springSecurityFilterChain' 的 bean 时出错

java - 进行排序时还会检查输入的名称是否是单词(即,它包含字母而不是数字或标点符号等字符)

java - 如何在 Java 中为 Heroku 工作进程设置最小的 Maven pom.xml 文件?

python - 如何解析带有目录结构的xml文件

c# - 在 .NET 6 中使用 xsltc.exe 生成的程序集(XSLT 样式表)

java - 10 SpringBoot 项目使用maven,如何减少他们的jar 大小?

java - Ant:如果类路径 jar 已更改但源代码未更改,如何强制进行 java 编译