Pergunta

Estou tendo problemas migrando do OC4J 10.1.2.3 para 10.1.3.1.4. O problema é para aplicações que têm vários EJB (todos são 2.1, 3.0 não EJB). Jdeveloper terá o padrão ejb-jar.xml (aquele necessário para Jdeveloper para executá-lo em sua instância OC4J stand-alone) e empacotá-lo em cada módulo JAR EJB não importa o que. Isto resulta na perfuração de servidor de aplicações em cada módulo JAR EJB ao implantar, e encontrar as mesmas ejb-jar.xml vezes arquivo n (onde n = número de EJB Modules). Isso resulta em referências duplicadas EJB e vai quebrar quaisquer consultas JNDI tais como: "java: comp / env / ejb / EJBName". Assim implantar um aplicativo que tem 3 EJBs, EJB1, EJB2 e EJB3 faz com que o servidor de aplicativo para registrar 9 EJBs em vez de 3. Eu preciso de uma melhor maneira práticas, mas entre a forma como 10.1.3.4 e JDeveloper estão agindo a situação é bastante dire ...

Nota lateral: Eles vão trabalhar se o código look-up JNDI do aplicativo web é refractored apenas "ejb / EJBName". Esta não é, porém desejável.

Foi útil?

Solução 2

O problema era múltipla referência em nossos perfis de implantação. Estávamos criar um perfil de implantação para cada EJB. Isto significava que cada EJB teve seu próprio ejb-jar.xml (este arquivo continha uma descrição de todos os EJBs no projeto). Portanto, cada vez JDeveloper criado um EJB, é colocado um descritor de todos os EJBs em cada EJB que gerou, fazendo com que uma quantidade NxN de referências. Portanto Nx (N-1) referências adicionais.

Agora, o ponto chave é que a Oracle Application Server 10.1.2.3.0 e abaixo não se preocupam com estas referências duplicadas. No entanto, como podemos ver, 10.1.3.1.4 é uma versão muito diferente e esta pausa fez.

A nossa solução: ter apenas 1 perfil implantação EJB que contém todas as classes EJB e o POJO de que eles usam. Lembre-se, antes que houvesse um EJB perfil para cada EJB ... Tudo isso fez foi permitir Jdeveloper (que é IMHO porcaria) para corretamente gerar um EAR válido. Uma combinação de porcaria de Jdeveloper e Application Server da Oracle é o que causou isso.

Outras dicas

Você deve verificar a documentação do Oracle para ver qual é o seu caso. O Oracle® Containers para o guia do J2EE Enterprise JavaBeans desenvolvedor é um bom começo De acordo com o Oracle® Contentores para J2EE Guia de Serviços, capítulo 2: Usando JNDI quando você usa a forma "ejb / EJBName" executar "local" de pesquisa. Se você quiser usar o formulário completo, você deve verificar a seção "Ativando globais JNDI Lookups" da "Usando JNDI" capítulo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top