Servlets cvc-complex-type.2.4a:预期元素“;运行方式,安全角色引用,多部分配置“;而不是",;“启动时加载”;这里是“元素”;servlet“;

Servlets cvc-complex-type.2.4a:预期元素“;运行方式,安全角色引用,多部分配置“;而不是",;“启动时加载”;这里是“元素”;servlet“;,servlets,weblogic,web.xml,Servlets,Weblogic,Web.xml,我在weblogic server中部署war时遇到以下错误,但它在wildfly 17中成功部署 错误:无法访问所选应用程序。错误验证 发现问题问题:cvc-complex-type.2.4a:预期 元素运行-as@http://xmlns.jcp.org/xml/ns/javaee 安全角色-ref@http://xmlns.jcp.org/xml/ns/javaee 多部分-config@http://xmlns.jcp.org/xml/ns/javaee'而不是 “加载-startup@

我在weblogic server中部署war时遇到以下错误,但它在wildfly 17中成功部署

错误:无法访问所选应用程序。错误验证 发现问题问题:cvc-complex-type.2.4a:预期 元素运行-as@http://xmlns.jcp.org/xml/ns/javaee 安全角色-ref@http://xmlns.jcp.org/xml/ns/javaee 多部分-config@http://xmlns.jcp.org/xml/ns/javaee'而不是 “加载-startup@http://xmlns.jcp.org/xml/ns/javaee'在元素中 servlet@http://xmlns.jcp.org/xml/ns/javaee

下面是我的Web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 <display-name>JavaServerFaces</display-name>
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/spring.xml</param-value>
 </context-param>
 <context-param>
  <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
  <param-value>true</param-value>
 </context-param>
 <context-param>
  <param-name>javax.faces.CONFIG_FILES</param-name>
  <param-value/>
 </context-param>
 <context-param>
  <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
  <param-value>true</param-value>
 </context-param>
 <context-param>
  <param-name>javax.faces.PROJECT_STAGE</param-name>
   <param-value>Production</param-value>
  <!-- <param-value>Development</param-value> -->
 </context-param>
 <context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
 </context-param>
 <context-param>
    <param-name>com.sun.faces.disableIdUniquenessCheck</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
  <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
 <context-param>
    <param-name>com.sun.faces.numberOfViewsInSession</param-name>
    <param-value>500</param-value>
</context-param>
<context-param>
    <param-name>com.sun.faces.numberOfLogicalViews</param-name>
    <param-value>300</param-value>
</context-param>
 <context-param>
  <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
  <param-value>resources.application</param-value>
 </context-param>
 <context-param>
  <param-name>primefaces.THEME</param-name>
  <param-value>#{primefacethemes.theme}</param-value>
 </context-param>
  <context-param>
 <param-name>com.sun.faces.sendPoweredByHeader</param-name>
 <param-value>false</param-value>
 </context-param>

 <filter>
  <filter-name>PrimeFaces FileUpload Filter</filter-name>
  <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
     <async-supported>true</async-supported>
 </filter>
 <filter-mapping>
  <filter-name>PrimeFaces FileUpload Filter</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
 </filter-mapping>
 <filter>
        <filter-name>compressionFilter</filter-name>
        <filter-class>com.googlecode.webutilities.filters.CompressionFilter</filter-class>
     <async-supported>true</async-supported>
        <init-param> 
                <param-name>compressionThreshold</param-name>
                <param-value>1024</param-value> 
        </init-param>
        <init-param> 
                <param-name>ignoreURLPattern</param-name>
                <param-value>.*\.(flv|mp3|mpg)</param-value> 
        </init-param>
        <init-param>
                <param-name>acceptURLPattern</param-name>
                <param-value>.*\.(css|js|html|xhtml|js.xhtml|css.xhtml|png|jpg|TTF)</param-value> 
        </init-param>        
        <init-param> 
                <param-name>ignoreMIMEPattern</param-name>
                <param-value>image/.*|video/.*|multipart/x-gzip</param-value> 
        </init-param>
        <init-param> 
                <param-name>ignoreUserAgentsPattern</param-name>
                <param-value>.*MSIE.*</param-value> 
        </init-param>
 </filter>
 <filter-mapping>
   <filter-name>compressionFilter</filter-name>
   <url-pattern>*</url-pattern>
 </filter-mapping>
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
<!--  <listener>
  <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
 </listener> -->
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <async-supported>true</async-supported>
  <load-on-startup>1</load-on-startup>
 </servlet>


<servlet>
    <servlet-name>PushSchedulerInitializer</servlet-name>
    <servlet-class>com.iii.orion.common.pushscheduler.PushSchedulerInitializer</servlet-class>
    <load-on-startup>1</load-on-startup>
     <async-supported>true</async-supported>
</servlet>  


  <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

  <session-config>
  <session-timeout>30</session-timeout>
  <cookie-config>
        <http-only>true</http-only>        
  </cookie-config>
  <tracking-mode>COOKIE</tracking-mode>
 </session-config>
 <welcome-file-list>
  <welcome-file>/Orion_login/index.xhtml</welcome-file>
 </welcome-file-list>
 
 <servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
     <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>Resteasy</servlet-name>
    <url-pattern>/report/*</url-pattern>
  </servlet-mapping>
 
  <context-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>com.iii.orn11j.common.webservice.OrionRESTApplication</param-value>
  </context-param>
  <listener>
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
  </listener>
   <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class>
     <async-supported>true</async-supported>
    <init-param>
        <param-name>principalFormat</param-name>
        <param-value>fqn</param-value>
    </init-param>
    <init-param>
        <param-name>roleFormat</param-name>
        <param-value>both</param-value>
    </init-param>
    <init-param>
        <param-name>allowGuestLogin</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>securityFilterProviders</param-name>
        <param-value>
                waffle.servlet.spi.NegotiateSecurityFilterProvider
                waffle.servlet.spi.BasicSecurityFilterProvider
            </param-value>
    </init-param>
    <init-param>
        <param-name>waffle.servlet.spi.NegotiateSecurityFilterProvider/protocols</param-name>
        <param-value>
                Negotiate
                NTLM
            </param-value>
    </init-param>
    <init-param>
        <param-name>waffle.servlet.spi.BasicSecurityFilterProvider/realm</param-name>
        <param-value>WaffleInfo</param-value>
    </init-param>
</filter>
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/welcome.xhtml</url-pattern>
    </filter-mapping>

    <!-- System Information Helpful for debugging -->
    <servlet>
        <servlet-name>WaffleInfo</servlet-name>
        <servlet-class>waffle.servlet.WaffleInfoServlet</servlet-class>
     <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>WaffleInfo</servlet-name>
        <url-pattern>/waffle</url-pattern>
    </servlet-mapping>

</web-app>

JavaServerFaces
上下文配置位置
/WEB-INF/spring.xml
javax.faces.FACELETS\u跳过\u注释
真的
javax.faces.CONFIG_文件
javax.faces.PARTIAL_STATE_保存
真的
javax.faces.PROJECT_阶段
生产
javax.faces.DATETIMECONVERTER\默认\时区\是\系统\时区
真的
com.sun.faces.disableiduniquencesscheck
真的
状态保存方法:“客户端”或“服务器”(=默认值)。参见JSF规范2.5.2
javax.faces.STATE_保存方法
服务器
com.sun.faces.numberofviewsin会话
500
com.sun.faces.numberofLogicalView
300
javax.servlet.jsp.jstl.fmt.localizationContext
资源.应用
主题
#{primefacethemes.theme}
com.sun.faces.sendPoweredByHeader
假的
PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
真的
PrimeFaces文件上载筛选器
Facesservlet
压缩滤波器
com.googlecode.webutilities.filters.CompressionFilter
真的
压缩阈值
1024
忽略模式
*\(flv | mp3 | mpg)
接受模式
.*\(css | js | html | xhtml | js.xhtml | css.xhtml | png | jpg | TTF)
信号模式
图像/*|视频/*|多部分/x-gzip
ignoreUserAgentsPattern
*MSIE.*
压缩滤波器
*
org.springframework.web.context.ContextLoaderListener
Facesservlet
javax.faces.webapp.FacesServlet
真的
1.
PushSchedulerInitializer
com.iii.orion.common.pushscheduler.pushSchedulerInInitializer
1.
真的
Facesservlet
*.xhtml
30
真的
曲奇
/Orion_登录/index.xhtml
放松
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
真的
放松
/报告/*
javax.ws.rs.Application
com.iii.orn11j.common.webservice.OrionRESTApplication
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
安全过滤器
waffle.servlet.NegotiateSecurityFilter
真的
主格式
fqn
roleFormat
二者都
allowGuestLogin
真的
安全过滤器提供程序
waffle.servlet.spi.NegotiateSecurityFilterProvider
waffle.servlet.spi.basicSecurity过滤器提供程序
waffle.servlet.spi.NegotiateSecurityFilterProvider/protocols
谈判
NTLM
waffle.servlet.spi.BasicSecurityFilterProvider/realm
华夫饼信息
安全过滤器
/welcome.xhtml
华夫饼信息
waffle.servlet.WaffleInfoServlet
真的
华夫饼信息
/华夫饼干
下面是我的Weblogic.xml

 <weblogic-web-app   xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
              <session-descriptor>
              
                <cookie-name>pinGLO_SESSIONID</cookie-name>
                <cookie-http-only>true</cookie-http-only>   
              </session-descriptor>
             <charset-params>
              <input-charset>
                  <resource-path>/*</resource-path>
                  <java-charset-name>UTF-8</java-charset-name>
              </input-charset>
         </charset-params>
        </weblogic-web-app>

pinGLO_SESSIONID
真的
/*
UTF-8

这是一个在wildfly17中成功运行的jsf项目。但是在weblogic12C中部署时出错,
web.xml
无效。最后一个结束标记未关闭:

它必须是

更新1:

好的,现在有了完整的web.xml,我们可以识别错误:

原始xml代码段:

<servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <async-supported>true</async-supported>
     <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
     <async-supported>true</async-supported>
 </servlet>

Facesservlet
javax.faces.webapp.FacesServlet
真的
1.
标签
true
1
的顺序不正确

正确的xml代码段:

<servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <async-supported>true</async-supported>
     <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
     <async-supported>true</async-supported>
 </servlet>

Facesservlet
javax.faces.webapp.FacesServlet
1.
真的

我怀疑这只是准备问题时的疏忽。因为如果这是真正的代码,OP肯定会得到一个完全不同的错误。是的@Balus C,在我的代码中是..在写问题时我犯了这个错误…请给出解决方案。现在这对我来说是一项乏味的工作。提前感谢此web.xml文件可能不是您异常的根本原因。您可以发布完整的堆栈跟踪吗?@EmmanuelCollin这是完整的堆栈跟踪以下部分出现两次…发现问题:cvc-complex-type.2.4a:元素中的预期元素“作为@security role ref@multipart config@运行”,而不是“启动时加载”servlet@one还有一件事我可以告诉你们,若我们去掉那个标签,那个么这个项目就完了进入准备状态但无法部署意味着不进入活动状态。。