项目

一般

简介

V10 企业部署solr 4.7.2 程序包报  cvc-complex-type.2.4.a: 发现了以元素 'env-entry-type' 开头的无效内容的问题

由 huang junrui 在 超过 3 年 之前添加

异常信息:
java.io.IOException: org.xml.sax.SAXParseException; lineNumber: 50; columnNumber: 24; Deployment descriptor file WEB-INF/web.xml in archive [solr].  cvc-complex-type.2.4.a: 发现了以元素 'env-entry-type' 开头的无效内容。应以 '{"http://java.sun.com/xml/ns/javaee":mapped-name, "http://java.sun.com/xml/ns/javaee":injection-target}' 之一开头。
    at com.apusic.aas.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:191)
    at com.apusic.aas.javaee.core.deployment.DolProvider.load(DolProvider.java:214)
    at com.apusic.aas.javaee.core.deployment.DolProvider.load(DolProvider.java:73)
    at com.apusic.enterprise.v10.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:861)
    at com.apusic.enterprise.v10.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:801)
    at com.apusic.enterprise.v10.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:356)
    at com.apusic.enterprise.v10.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:197)
    at com.apusic.aas.deployment.admin.DeployCommand.execute(DeployCommand.java:492)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:519)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:518)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:549)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:541)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:540)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1448)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:88)
    at com.apusic.enterprise.v10.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1842)
    at com.apusic.aas.deployment.autodeploy.AutoOperation.run(AutoOperation.java:143)
    at com.apusic.aas.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:574)
    at com.apusic.aas.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:461)
    at com.apusic.aas.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:388)
    at com.apusic.aas.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:379)
    at com.apusic.aas.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:209)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
Caused by: org.xml.sax.SAXParseException; lineNumber: 50; columnNumber: 24; Deployment descriptor file WEB-INF/web.xml in archive [solr].  cvc-complex-type.2.4.a: 发现了以元素 'env-entry-type' 开头的无效内容。应以 '{"http://java.sun.com/xml/ns/javaee":mapped-name, "http://java.sun.com/xml/ns/javaee":injection-target}' 之一开头。
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:304)
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:221)
    at com.sun.enterprise.deployment.archivist.Archivist.readStandardDeploymentDescriptor(Archivist.java:655)
    at com.sun.enterprise.deployment.archivist.Archivist.readDeploymentDescriptors(Archivist.java:367)
    at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:247)
    at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:256)
    at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:217)
    at com.sun.enterprise.deployment.archivist.ApplicationFactory.openArchive(ApplicationFactory.java:137)
    at com.apusic.aas.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:183)
    ... 28 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 50; columnNumber: 24; cvc-complex-type.2.4.a: 发现了以元素 'env-entry-type' 开头的无效内容。应以 '{"http://java.sun.com/xml/ns/javaee":mapped-name, "http://java.sun.com/xml/ns/javaee":injection-target}' 之一开头。
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:453)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3231)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1791)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:741)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:294)
    ... 36 more

版本号:202106101338

解决时间:2021-11-10

解决方案:把solr应用包的web.xml中的env-entry标签的value和type的顺序调换(weblogic也是同样处理方法),具体如下:

   <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/put/your/solr/home/here</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

改为

 <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-type>java.lang.String</env-entry-type>
       <env-entry-value>/put/your/solr/home/here</env-entry-value>
    </env-entry>

界面现象:

日志截图:

解决操作: