p/ instanciar um EJB é importante lembrar q, segundo a especificação, EJBs não podem ser manipulados via refletion.
Isso pq no deploy os EBJs são instrumentados através de API de instrumentação de bytecode e como resultado um
EJB chamado digamos Powerslave, em tempo de execução pode receber um nome do tipo EJB31_Generated__Powerslave__Intf____Bean.
brunobuild
Na verdade não estou instanciando um EJB, é um objeto que fica dentro do EJB.
Por exemplo eu tenho minha classe que é EJB e implementa um determinado método e ele precisa de um objeto sei lá um DAO por exemplo ai eu passo o class para que a minha classe instancie ele pra mim.
Sendo que o meu DAO não é EJB.
dev.rafael
Segundo a especificação os EJBs tb ñ podem usar a API de java.lang.reflection, bem como java.io, java.lang.Thread entre outras. Efetivamente ñ há nada q o impeça de faze-lo e funcionar mas esse comportamento ñ é garantido pela especificação, ou seja, pode funcionar em um server e ñ funcionar em outro ou mesmo funcionar em uma versão e ñ em outra. Tb ñ importa se o seu EJB chama dirétamente o método da API proíbida ou se chama um método de uma outra classe q por sua vez chama a API proíbida, de qualquer forma, esse pode ser o seu caso. Caso vc realmente necessite de reflection p/ o q vc está implementando vc pode tentar passar dirétamente o MyDAO.class ao invés do MyDAO.class.getName().
brunobuild
Na verdade estou com dois problemas.
Estou com com dois problemas esse é um de reflection mas acho que o outro problema está ligado a ele.
Eu tenho uma classe que é responsável por carregar o meu arquivo de mensagens também um .properties
Só que essa classe está dentro do jar eo meu properties está dentro do meu war e está dizendo que o arquivo não pode ser encontrado, isso também não pode ser usado?
dev.rafael
Apenas os EJBs sofrem dessas restrições, componentes WEB podem criar e gerênciar Threads, ler e escrever arquivos e tudo mais que é proíbido para os EJBs. Só é importante checar quem é a classe que está tentando carregar esse arquivo porque se ela for um EJB ou estiver sendo chamada por um, então ela sofre das mesmas restrições pois estará sendo executado dentro do container EJB.