我正在尝试在JBoss AS7上部署一个运行在Websphere6.1上的EAR,但是我收到了这个错误:
Caused by: java.lang.IllegalArgumentException: No enum const class org.jboss.metadata.web.spec.BodyContentType.None
at java.lang.Enum.valueOf(Unknown Source) [:1.6.0_29]
at or.jboss.metadata.web.spec.BodyContentType.valueOf(BodyContentType.java:30)
at org.jboss.metadata.parser.jsp.TagMetaDataParser.parse(TagMetaDataParser.java:117)
at org.jboss.metadata.parser.jsp.TldMetaDataParser.parse(TldMetaDataParser.java:226)
at org.jboss.as.web.deployment.TldParsingDeploymentProcessor.parseTLD(TldParsingDeploymentProcessor.java:124)
at org.jboss.as.web.deployment.TldParsingDeploymentProcessor.processTlds(TldParsingDeploymentProcessor.java:105)
at org.jboss.as.web.deployment.TldParsingDeploymentProcessor.deploy(TldParsingDeploymentProcessor.java:81)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final]
... 5 more
我无法判断它正在尝试解析哪个.tld文件,但是我查看了WAR中的.tld文件,而指定<body-content>
标记的文件是<body-content>scriptless</body-content>
。所有.tld文件都有此doctype:
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
有没有人遇到过这个或类似的问题?
[编辑]
我已经为tld文件中的每个标记添加了<body-content>
标记,但我仍然收到此错误 - 所以我猜它正在尝试解析其他一些.tld ...
...并从EAR中删除所有.tld文件会得到相同的结果。
答案 0 :(得分:3)
检查spring-modules-validation-0.8.jar。 META-INF / valang.tld包含无效的正文内容值。
即,
<body-content>None</body-content>
其中值“None”无效。将此值替换为“empty”。
所以正确的标签是
<body-content>empty</body-content>
Jboss-7.x不会部署捆绑SpringModules库的应用程序,其中包含不正确的文件(SPRINGMODULES-13)。
答案 1 :(得分:1)
WEB-INF lib文件夹中的一个jar(你知道你是谁,spring-modules-validation.jar v.0.9)有一个.tld,为<body-content>None</body-content>
指定org.springmodules.validation.valang.javascript.taglib.ValangCodebaseTag