简体   繁体   中英

In wildfly 19, Why am I getting javax.faces.FacesException: javax.servlet.jsp.JspException: a minimum and / or a maximum have to be specified?

I am migrating a really old application from jboss 6 to wildfly 19. It bases on EJB2 and JSF1.2 - MyFaces. Application is deployed, but when I try to reach one of JSP page (wrapped with JSF) then I am getting an error, which tells me nothing. Is there somebody who could know what does it mean? Thanks in advance for help.

[javax.faces.webapp._ErrorPageWriter] (default task-1) An exception occurred: javax.faces.FacesException: javax.servlet.jsp.JspException: a minimum and / or a maximum have to be specified
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:347)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:486)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:337)
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:187)
    at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:122)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:52)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:374)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at myoldapplication.package.web.filter.ExtranetFilter.doFilter(ExtranetFilter.java:76)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at myoldapplication.package.web.filter.PerformanceFilter.doFilter(PerformanceFilter.java:33)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at myoldapplication.package.web.filter.ForceCharacterEncodingAndContentTypeFilter.doFilter(ForceCharacterEncodingAndContentTypeFilter.java:69)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at myoldapplication.package.web.filter.ChineseWallsFilter.doFilter(ChineseWallsFilter.java:33)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
    at org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103)
    at org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161)
    at org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73)
    at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.lang.Thread.run(Thread.java:748)
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: a minimum and / or a maximum have to be specified
    at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:889)
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:818)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspService(BiorderFilter_jsp.java:316)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:81)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
    at org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103)
    at org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161)
    at org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73)
    at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:186)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:227)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:149)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:341)
    ... 71 more
Caused by: javax.servlet.jsp.JspException: a minimum and / or a maximum have to be specified
    at org.apache.myfaces.taglib.core.GenericMinMaxValidatorTag.createValidator(GenericMinMaxValidatorTag.java:70)
    at org.apache.myfaces.taglib.core.ValidateLongRangeTag.createValidator(ValidateLongRangeTag.java:43)
    at javax.faces.webapp.ValidatorELTag.doStartTag(ValidatorELTag.java:50)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_f_005fvalidateLongRange_005f0(BiorderFilter_jsp.java:3794)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_h_005finputText_005f0(BiorderFilter_jsp.java:3760)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_h_005fpanelGrid_005f0(BiorderFilter_jsp.java:3610)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_h_005fform_005f2(BiorderFilter_jsp.java:3545)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_t_005fdocumentBody_005f1(BiorderFilter_jsp.java:777)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_t_005fhtmlTag_005f1(BiorderFilter_jsp.java:693)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_f_005fview_005f0(BiorderFilter_jsp.java:359)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspService(BiorderFilter_jsp.java:301)
    ... 97 more

When getting a stack trace, always look at the bottommost root cause. The answer is usually right there.

Caused by: javax.servlet.jsp.JspException: a minimum and / or a maximum have to be specified
    at org.apache.myfaces.taglib.core.GenericMinMaxValidatorTag.createValidator(GenericMinMaxValidatorTag.java:70)
    at org.apache.myfaces.taglib.core.ValidateLongRangeTag.createValidator(ValidateLongRangeTag.java:43)
    at javax.faces.webapp.ValidatorELTag.doStartTag(ValidatorELTag.java:50)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_f_005fvalidateLongRange_005f0(BiorderFilter_jsp.java:3794)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_h_005finputText_005f0(BiorderFilter_jsp.java:3760)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_h_005fpanelGrid_005f0(BiorderFilter_jsp.java:3610)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_h_005fform_005f2(BiorderFilter_jsp.java:3545)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_t_005fdocumentBody_005f1(BiorderFilter_jsp.java:777)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_t_005fhtmlTag_005f1(BiorderFilter_jsp.java:693)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspx_meth_f_005fview_005f0(BiorderFilter_jsp.java:359)
    at org.apache.jsp.pages.order.BiorderFilter_jsp._jspService(BiorderFilter_jsp.java:301)
    ... 97 more

Carefully read out aloud the class/method names from bottom to top until some parts become sensible:

  • BiorderFilter.jsp file is being serviced
  • <f:view> tag
  • <t:html> tag
  • <t:documentBody> tag
  • <h:form> tag
  • <h:panelGrid> tag
  • <h:inputText> tag
  • <f:validateLongRange> tag
  • start of tag
  • create validator of type ValidateLongRangeTag
  • create validator of type GenericMinMaxValidatorTag
  • problem: "a minimum and / or a maximum have to be specified"

So most likely you have a BiorderFilter.jsp file with a <f:validateLongRange> tag which doesn't have a minimum and / or a maximum attribute specified.

<h:inputText ...>
   <f:validateLongRange />
</h:inputText>

Just specify at least one of those attribues with a non- null value and this problem shall disappear. Eg:

<h:inputText ...>
   <f:validateLongRange minimum="0" />
</h:inputText>

Or probably the whole validator is unnecessary for the specific input, you'd best just remove it. It's known that some developers use this way in order to ensure that the inputted value is a Long instead of eg Double . But for that a Converter should be used instead of a Validator , or simply a strictly typed <h:inputText value="#{bean.value}"> where value is of type Long so that JSF does the automatic conversion by itself.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM