2016-09-01 34 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); 
} 
} 

不得不自動裝配在配置類過濾器。