Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Castor未根据正则表达式将值识别为有效值_Java_Xml_Regex_Maven_Castor - Fatal编程技术网

Java Castor未根据正则表达式将值识别为有效值

Java Castor未根据正则表达式将值识别为有效值,java,xml,regex,maven,castor,Java,Xml,Regex,Maven,Castor,我有一个奇怪的问题,我的Castor Maven插件生成的java类将无法解组XML字符串的内容 我尝试验证的XML如下所示: ... <mediaType>audio/media</mediaType> ... 尝试解组XML字符串时引发以下异常: org.exolab.castor.xml.MarshalException: The following exception occured while validating field: _mediaType

我有一个奇怪的问题,我的Castor Maven插件生成的java类将无法解组XML字符串的内容

我尝试验证的XML如下所示:

...
    <mediaType>audio/media</mediaType>
...
尝试解组XML字符串时引发以下异常:

org.exolab.castor.xml.MarshalException: The following exception occured while validating field: _mediaType of class: my.domain.GeneratedClass: audio/mpegdoes not match the required regular expression: "(audio|video|document|application|example|image|message|model|multipart|text)/.+"{File: [not available]; line: 23; column: 12}...
现在,根据IntelliJ的XML验证和我尝试过的所有其他正则表达式工具,这应该不是问题。Castor为什么这么认为?

Castor没有(好的)本机正则表达式验证器,您必须在配置文件中指定一个。看

将名为castor.properties的配置文件添加到包含以下内容的类路径:

org.exolab.castor.regexp=org.exolab.castor.util.JakartaRegExpEvaluator
您可能还需要将Jakarta正则表达式的依赖项添加到Maven:

 <dependency>
        <groupId>jakarta-regexp</groupId>
        <artifactId>jakarta-regexp</artifactId>
        <version>1.4</version>
    </dependency>

雅加达正则表达式
雅加达正则表达式
1.4

Castor上不同地方的旧帖子显示了旧版本的bug。我想您运行的是更新的版本,但您使用的是什么版本?我使用的是1.3.0.1,尽管我刚刚更新到1.3.1。我和一位同事刚刚解决了这个问题。见下文。
 <dependency>
        <groupId>jakarta-regexp</groupId>
        <artifactId>jakarta-regexp</artifactId>
        <version>1.4</version>
    </dependency>