Prezados,
Tenho uma classe central chamada “ClasseFactory” que utilizo para fabricar outras classes, conforme o exemplo:
@Name("classeFactory")
@Scope(ScopeType.SESSION)
@AutoCreate
public class ClasseFactory {
...
@Factory("servicoCorreios")
public ServicoCorreios createServicoCorreios() throws BusinessException{
String endpoint = "https://apphom.correios.com.br/AtendeCliente?wsdl"
return new ServicoCorreios(endpoint);
}
...
}
Na classe “ServicoCorreios” que estou criando via factory, possuo variáveis anotadas com @In. O factory cria minha classe sem problemas, no entanto, as variáveis @In presentes na nova instância estão nulas, pq?
@Name("servicoCorreios")
@Scope(ScopeType.SESSION)
@AutoCreate
public class ServicoCorreios implements Serializable {
...
@In
private PostagemManager postagemManager;
...
public ServicoCorreios(String endpoint) {
try {
URL url = new URL(endpoint);
QName qname = new QName("http://cliente.bean.master.sigep.bsb.correios.com.br/","AtendeClienteService");
atendeClienteService = new AtendeClienteService(url, qname);
atendeCliente = atendeClienteService.getAtendeClientePort();
...
}
}
...
public void enviaCorrespondencia(){
...//grava algumas coisas no banco e depois envia
postagemManager.enviaCorrespondencia();
}
}
Minha classe PostagemManager está anotada da seguinte maneira:
@Name("postagemManager")
@Scope(ScopeType.SESSION)
@Transactional
@AutoCreate
public class PostagemManager implements Serializable{
...