2016-09-01 31 views
1

我已按照文档配置泽西2.0与Springboot。泽西岛2.0 SpringBoot客户端过滤器自动布线失败 - nullpointerexception

@Component 
public class JerseyConfig extends ResourceConfig { 

    public JerseyConfig() { 
     super(); 
     register(AccountResource.class); 
     register(CustomerAccountResource.class); 
    // register(new ClientLoggingFilter()); 
     register(new ServerLoggingFilter()); 
     register(HapiExceptionMapper.class); 
     register(ConstraintViolationExceptionMapper.class); 
     register(GeneralExceptionMapper.class); 
     property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true); 
    } 
} 

我注册两个过滤器,

@Component 
@PreMatching 
@Priority(Integer.MIN_VALUE) 
public class ServerLoggingFilter implements ContainerRequestFilter, ContainerResponseFilter{ 

@Component 
public class ClientLoggingFilter implements ClientRequestFilter, ClientResponseFilter{ 

我使用泽西服务器和Jersey客户端在我的应用程序。

我已将Jersey Client配置为一个bean,因此只有一个它的实例。

@Configuration 
public Class XClient { 

@Bean 
public Client client() { 
return ClientBuilder 
       .newBuilder() 
       .sslContext(sslContext) 
       .build() 
       .register(new ClientLoggingFilter()); 
} 
} 

当我在我的ClientLoggingFilter中自动装配另一个弹簧管理Bean时,我得到一个空指针异常。同一个bean在ServerLoggingFilter中工作正常。我希望有人能帮助我。

回答

0

想通了,

@Configuration 
public Class XClient { 

@Autowired 
ClientLoggingFilter loggingFilter; 

@Bean 
public Client client() { 
return ClientBuilder 
       .newBuilder() 
       .sslContext(sslContext) 
       .build() 
       .register(loggingFilter); 
} 
} 

不得不自动装配在配置类过滤器。