2017-04-05 74 views
1

我有使用SpringWS的Spring Boot应用程序。在WsConfigurerAdapter的内部,我重写addInterceptors以添加日志记录/认证/验证/等。未在Websphere应用程序服务器中调用Spring引导addInterceptors

@Configuration 
@EnableCaching 
@EnableWs 
public class WebServiceConfig extends WsConfigurerAdapter { 

    ... 

    @Override 
    public void addInterceptors(List<EndpointInterceptor> interceptors) { 
     EnvironmentSettings environment = getEnvironmentSettings(); 

     interceptors.add(getLogSetupInterceptor()); 
     interceptors.add(getAuthenticationInterceptor()); 
     interceptors.add(getServerLoggingInterceptor()); 
     interceptors.add(getAuthorizationInterceptor()); 
     ServerPayloadValidatingInterceptor validatingInterceptor = new ServerPayloadValidatingInterceptor(); 
     validatingInterceptor.setValidateRequest(environment.isValidateSoapRequest()); 
     validatingInterceptor.setValidateResponse(environment.isValidateSoapResponse()); 
     validatingInterceptor.setXsdSchema(xsdSchema()); 
     interceptors.add(validatingInterceptor); 
    } 
} 

奇怪的是,当在本地运行时,所有这些拦截器都会被添加并为每个请求运行就好。但是,当我将应用程序作为.war部署到WAS时,此一方法未运行。我甚至添加了日志记录声明,我可以告诉它这是跳过而不是拦截器本身的方法。有没有人知道关于spring boot .war文件的一些我不知道的事情?

而且,这里是我的应用程序类:

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 


    public static void main(String[] args) { 

     SpringApplication.run(Application.class, args); 

    } 

} 

回答

0

我想通了,我做错了什么。事实证明,我在/ *中都在我的WebServiceConfig和我的web.xml中创建了一个servlet映射。

相关问题