Spring Boot - 使用 ?WSDL 下载 WSDL

Pun*_*cky 2 spring web-services spring-boot

我使用 Spring Boot 使用此处定义的步骤创建了一个 webservice当我尝试下载 wsdl 时,我必须在 url 中使用 .wsdl 。但是,当我使用 ?wsdl 时,没有下载 wsdl。当我在 url 中使用 ?wsdl 时,如何重写 url 以下载 wsdl?

chi*_*mmi 5

我使用这个过滤器能够访问带有 Spring 样式的 wsdl.wsdl以及?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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您需要将其注册为已命名wsdlRequestCompatibilityFilter并将以下配置添加到您的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>
Run Code Online (Sandbox Code Playgroud)