[jboss-jira] [JBoss JIRA] (JBMETA-378) Presence of <servlet-name> and <url-pattern> is not validated for <servlet-mapping> inside the web.xml

Jay Kumar SenSharma (JIRA) issues at jboss.org
Wed Aug 6 07:14:29 EDT 2014


    [ https://issues.jboss.org/browse/JBMETA-378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12990687#comment-12990687 ] 

Jay Kumar SenSharma commented on JBMETA-378:
--------------------------------------------

- The above fix should also help in scenarios where the <servlet-mapping> has a valid <url-pattern> tag but has missing <servlet-name> tag.  The fix sould cause the following kind of message to appear while validating the servlet-name:

{code}
16:26:06,580 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0027: Starting deployment of "InvalidServletMappingDemo.war" (runtime-name: "InvalidServletMappingDemo.war")
16:26:06,594 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."InvalidServletMappingDemo.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."InvalidServletMappingDemo.war".PARSE: WFLYSRV0153: Failed to process phase PARSE of deployment "InvalidServletMappingDemo.war"
	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163) [wildfly-server-1.0.0.Alpha3.jar:1.0.0.Alpha3]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYUT0027: Failed to parse XML descriptor "/content/InvalidServletMappingDemo.war/WEB-INF/web.xml" at [16,2]
	at org.wildfly.extension.undertow.deployment.WebParsingDeploymentProcessor.deploy(WebParsingDeploymentProcessor.java:120)
	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156) [wildfly-server-1.0.0.Alpha3.jar:1.0.0.Alpha3]
	... 5 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[16,2]
Message: <servlet-name> tag is missing while defining <servlet-mapping> inside the web.xml
	at org.jboss.metadata.parser.servlet.ServletMappingMetaDataParser.parse(ServletMappingMetaDataParser.java:85)
	at org.jboss.metadata.parser.servlet.WebCommonMetaDataParser.parse(WebCommonMetaDataParser.java:110)
	at org.jboss.metadata.parser.servlet.WebMetaDataParser.parse(WebMetaDataParser.java:184)
	at org.jboss.metadata.parser.servlet.WebMetaDataParser.parse(WebMetaDataParser.java:57)
	at org.wildfly.extension.undertow.deployment.WebParsingDeploymentProcessor.deploy(WebParsingDeploymentProcessor.java:93)
	... 6 more

16:26:06,599 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "InvalidServletMappingDemo.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"InvalidServletMappingDemo.war\".PARSE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"InvalidServletMappingDemo.war\".PARSE: WFLYSRV0153: Failed to process phase PARSE of deployment \"InvalidServletMappingDemo.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYUT0027: Failed to parse XML descriptor \"/content/InvalidServletMappingDemo.war/WEB-INF/web.xml\" at [16,2]
    Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[16,2]
Message: <servlet-name> tag is missing while defining <servlet-mapping> inside the web.xml"}}
{code}

> Presence of <servlet-name> and <url-pattern> is not validated for <servlet-mapping> inside the web.xml
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JBMETA-378
>                 URL: https://issues.jboss.org/browse/JBMETA-378
>             Project: JBoss Metadata
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: web
>    Affects Versions: 8.0.1.Final
>            Reporter: Jay Kumar SenSharma
>            Assignee: Jean-Frederic Clere
>
> - JBoss Metadata APIs do not validate if the <servlet-mapping> tag has valid mappings or not. This should have been handled properly.
> *Example:* If following kind of web.xml based application is deployed on WildFly9 then 
>  {code}
> <?xml version="1.0"?>
> <web-app xmlns="http://java.sun.com/xml/ns/javaee"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
>       version="3.0"> 
> 	<servlet>
> 		<servlet-name>MyServlet</servlet-name>
> 		<servlet-class>servlets.MyServlet</servlet-class>
>                 <load-on-startup>1</load-on-startup>
> 	</servlet>
> 	<servlet-mapping>
> 		<servlet-name>MyServlet</servlet-name>
> 		<!--url-pattern></url-pattern-->             <!-- NOTICE  url-pattern-tag is missing here -->
> 	</servlet-mapping>
> </web-app>
> {code}
> - With the above kind of web.xml a NullPointerException is encountered during deployment.
> {code}
> 15:50:20,207 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./ContextParamNullDemo.UndertowDeploymentInfoService: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./ContextParamNullDemo.UndertowDeploymentInfoService: Failed to start service
> 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
> 	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
> Caused by: java.lang.NullPointerException
> 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.handleServletMappings(UndertowDeploymentInfoService.java:910)
> 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:656)
> 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.start(UndertowDeploymentInfoService.java:252)
> 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
> 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
> 	... 3 more
> 15:50:20,348 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "ContextParamNullDemo.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.undertow.deployment.default-server.default-host./ContextParamNullDemo.UndertowDeploymentInfoService" => "org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./ContextParamNullDemo.UndertowDeploymentInfoService: Failed to start service
>     Caused by: java.lang.NullPointerException"}}
> {code}



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the jboss-jira mailing list