Seam injeção de EJB não funciona

12 04 2016

Problema

Em determinadas classes, por exemplo que são construidas com refletion, a injeção de um componente EJB não estava funcionando com o Seam.

Solução

Descobri que para fazer funcionar a injeção nesses casos é necessário colocar no construtor da classe que será criada via reflection

public class RequisicaoCompraConsumerIn extends AbstractCustomConsumerIn<RequisicaoCompra> {

    private LegacyProxyService legacyService;
    
    public RequisicaoCompraConsumerIn() {
        super(RequisicaoCompraConsumerIn.class.getSimpleName());
        legacyService = (LegacyProxyService) Component.getInstance(ServiceNames.LEGACY_PROXY_SERVICE, true, true);
    }

    @Override
    protected void processDomainObject(RequisicaoCompra domainObject) {
        try {
        	legacyService.addToQueue(domainObject.getConteudo(), "From-adapter.xml", LEGACY_EDI_CODE_REQUISICAO_COMPRA);
        } catch (Exception e) {
            throw new EmpresaException(e);
        }
    }

 

Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: