我试图在Weblogic 12.2.1.0上运行的Java EE7应用程序中运行togglz-console。 为了使用控制台,我添加了togglz网页上所述的依赖项,没有添加到web.xml,因为我认为Weblogic将能够运行servlet。
但是,当我尝试部署应用程序时,出现以下错误:
[ERROR] Failed to execute goal com.oracle.weblogic:weblogic-maven-plugin:12.2.1-0-0:redeploy (wls-redeploy) on project foobar: weblogic.Deployer$DeployerException: weblogic.deploy.api.tools.deployer.DeployerException: Task 4 failed: [Deployer:149026]deploy application foobar on foobarcluster.
[ERROR] Target state: redeploy failed on Cluster foobarcluster
[ERROR] weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
[ERROR] <path_to_basedomain>\base_domain\weblogic.utils.classloaders.GenericClassLoader@26f37eff finder: weblogic.utils.classloaders.CodeGenClassFinder@70f09e70 annotation: foobar@\WEB-INF\lib\togglz-console-2.4.0.Final.jar!\META-INF\web-fragment.xml:6:26:6:26: problem: cvc-datatype-valid.1.1: string value 'togglz-console' does not match pattern for java-identifierType in namespace http://java.sun.com/xml/ns/javaee
我还尝试在web.xml中包含servlet-mapping和servlet,但这对它们都没有帮助。
更多调查显示,我们的应用程序的web.xml使用Servlet 3.1版,而togglz-console.jar中的web-fragment.xml使用3.0。看起来像是其他人遇到的名称空间冲突。 将尝试完全删除我们的应用程序的web.xml,然后重试。
非常感谢任何帮助。
答案 0 :(得分:1)
看起来Weblogic在web-fragment.xml文件中的name元素有问题。我认为这是在Togglz 2.4.0中添加的,所以你可以尝试使用2.3.0。
此外,如果Weblogic允许禁用XML描述符验证,这将是一种解决此问题的方法。