2

I created a webservice using Spring Boot using the steps defined hereWhen I try to download the wsdl , I am having to use .wsdl in the url. However when I use ?wsdl , the wsdl is not getting downloaded. How can I rewrite the url to download the wsdl when I use ?wsdl in the url?

Punter Vicky
  • 12,516
  • 39
  • 134
  • 241

1 Answers1

5

I use this filter to be able to acces wsdl with Spring styled .wsdl as well as ?wsdl:

public class WsdRequestCompatibilityFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        if ("GET".equals(request.getMethod()) && "wsdl".equalsIgnoreCase(request.getQueryString())) {
            request.getSession().getServletContext().getRequestDispatcher(request.getRequestURI() + ".wsdl").forward(request, response);
        } else {
            filterChain.doFilter(request, response);
        }
    }
}

You need to register this as been named wsdlRequestCompatibilityFilter and add folowing config to your web.xml:

<filter>  
    <filter-name>wsdlRequestCompatibilityFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>wsdlRequestCompatibilityFilter</filter-name>
    <url-pattern>/ws/*</url-pattern>
</filter-mapping>
chimmi
  • 1,942
  • 14
  • 29