Java Castor未根据正则表达式将值识别为有效值
我有一个奇怪的问题,我的Castor Maven插件生成的java类将无法解组XML字符串的内容 我尝试验证的XML如下所示: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
...
<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>