@Bean возвращает ноль - PullRequest
       1

@Bean возвращает ноль

1 голос
/ 13 октября 2019

В классе конфигурации я определил несколько @Beans. Проблема в том, что некоторые bean-компоненты при вызове перенастраивают нуль в другом классе. Я хотел бы понять, почему это происходит.

SoapConfig.class

@Configuration
@ComponentScan(basePackages = {"mk.test.wsdl","mk.test.Porting"})
public Jaxb2Marshaller marshaller(){
    Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
    marshaller.setContextPath("mk.softnet.wsdl");
    System.out.println("out:" + marshaller);
    return marshaller;
}

@Bean
public SaajSoapMessageFactory messageFactory() {
    SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory();
    messageFactory.setSoapVersion(SoapVersion.SOAP_12);
    return messageFactory;
}
  @Bean
   public KeyStoreFactoryBean keyStoreFactoryBean(){
       KeyStoreFactoryBean keyStoreFactoryBean = new KeyStoreFactoryBean();
       keyStoreFactoryBean.setPassword("test");
       keyStoreFactoryBean.setLocation(new 
       ClassPathResource("test.jks"));

       return  keyStoreFactoryBean;
   }

SoapClinet.class

private Jaxb2Marshaller marshaller;

в методе:

System.out.println(marshaller) // я получаю некоторое значение, например: marshalar: org.springframework.oxm.jaxb.Jaxb2Marshaller@376c7d7d (что я не знаю, что это значит)

Но если я System.out ... "keyStoreFactoryBean" или "messageFactory", я всегдаполучить значение NULL, мне нужно определить это в SoapClient.class

Единственная информация, которая указывает что-то, это: Bean 'keyStoreFactoryBean' типа [org.springframework.ws.soap.security.support.KeyStoreFactoryBean] не являетсяимеет право на получение обработки всеми BeanPostProcessors (например: не имеет права на авто-проксирование)

Но из того, что я прочитал, это не ошибка.

1 Ответ

1 голос
/ 14 октября 2019

Есть ли у вас аннотация @Configuration для класса, в отличие от метода, описанного выше? Я запустил код с приведенным ниже кодом, и он создал бин.

@Configuration
public class SoapConfig {

    @Bean
    public Jaxb2Marshaller marshaller(){
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setContextPath("mk.softnet.wsdl");
        System.out.println("out:" + marshaller);
        return marshaller;
    }

    @Bean
    public SaajSoapMessageFactory messageFactory() {
        SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory();
        messageFactory.setSoapVersion(SoapVersion.SOAP_12);
        return messageFactory;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...