Manas Ranjan Sahoo
Manas Ranjan Sahoo

Reputation: 11

cvc-complex-type.2.4a: Expected elements "run-as, security-role-ref, multipart-config" instead of "load-on-startup" here in element "servlet"

I got the following error while deploying a war in weblogic server but it is getting deployed successfully in wildfly 17 .

Error Unable to access the selected application. Error VALIDATION PROBLEMS WERE FOUND <113:5> problem: cvc-complex-type.2.4a: Expected elements 'run-as@http://xmlns.jcp.org/xml/ns/javaee security-role-ref@http://xmlns.jcp.org/xml/ns/javaee multipart-config@http://xmlns.jcp.org/xml/ns/javaee' instead of 'load-on-startup@http://xmlns.jcp.org/xml/ns/javaee' here in element servlet@http://xmlns.jcp.org/xml/ns/javaee

Below is my 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>

Below is my 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>

This is a jsf project successfully running in wildfly17.but got error while deploying in weblogic12C

Upvotes: 0

Views: 1171

Answers (1)

devwebcl
devwebcl

Reputation: 3163

The web.xml is not valid. The last end tag is not closing: <web-app>

it must be </web-app>

UPDATE 1:

Ok, now having the complete web.xml we can identify the error:

Original xml snippet:

<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>

Tags <async-supported>true</async-supported> and <load-on-startup>1</load-on-startup> are in incorrect order

Correct xml snippet:

 <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>

Upvotes: 0

Related Questions