Search code examples
javagetjbosswildflystruts

HTTP400: GET request doesn't work on Wildfly 18 but works on JBoss 7


Recently I upgraded from Jboss 7.1.1 to Wildfly 18.0.0. On running my ear over wildfly, the following url doesn't work

http://localhost:8080/xxx-yyy/contract/subPeriodBlockingPairsAction.do?target=prepareSubPeriodBlockPairs&contractIdSubPeriodId=416|837

However the same url works over JBoss 7.1.1 .

The application is struts based. The target method has following syntax-

 public ActionForward prepareSubPeriodBlockPairs(final ActionMapping mapping, final ActionForm form, final ActionErrors validationErrors,
        final HttpServletRequest request, final HttpServletResponse response)

I tried putting debug point, which is never reached while debugging on Wildfly.

But reaches while debugging on JBoss.


Solution

  • Wildfly 18.0 doesn't recognises pipe operator.

    Also '|' (pipe) character is unsafe according to the RFC1738 specification of HTTP.

    Hence url encoding must be used here to address the issue.