Boa tarde,
eu estou com o seguinte problema, tenho duas máquinas em cluster rodando o ias 10.1.3.2, que aqui vou chamar de maquina-01 e maquina-02.
Nela estou tentando rodar uma aplicação com EJB, o problema é que, quando o cluster é direcionado para a maquina-01, a aplicação funciona
ok, porém, quando é direcionado para a maquina-02, rola um ClassCastException ao fazer o cast do retorno do Context.lookup. A stack trace que
eu tenho é a seguinte:
java.lang.ClassCastException: EquipamentoHome_EntityHomeWrapper162
at com.rge.novalig.web.servlets.NovaLigConsEquipServlet.getEquipamentos(NovaLigConsEquipServlet.java:431)
at com.rge.imobiliaria.servlets.ConsultaEquipamentoServlet.getEquipamentos(ConsultaEquipamentoServlet.java:59)
at _jsf._trocanome._popupEquipamento._jspService(_popupEquipamento.java:59)
[SRC:/jsf/trocanome/popupEquipamento.jsp:20]
at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.2.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:597)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:521)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:712)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:258)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:50)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:192)
at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:197)
at com.rge.imobiliaria.servlets.ConsultaEquipamentoServlet.service(ConsultaEquipamentoServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:712)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.2.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
A maneira que eu estou chamando o EJB é a seguinte:
Context context = new InitialContext();
Object object = context.lookup("Equipamento");
EquipamentoHome home = (EquipamentoHome) object;
O ejb-jar.xml está assim configurado:
<entity>
<description>Entity Bean ( Container-managed Persistence )</description>
<display-name>Equipamento</display-name>
<ejb-name>Equipamento</ejb-name>
<home>com.rge.ejb.EquipamentoHome</home>
<remote>com.rge.ejb.Equipamento</remote>
<ejb-class>com.rge.ejb.impl.EquipamentoBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>com.rge.ejb.EquipamentoPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>equipamento_id</field-name>
</cmp-field>
<cmp-field>
<field-name>nome</field-name>
</cmp-field>
<cmp-field>
<field-name>potencia</field-name>
</cmp-field>
</entity>
e a estrutura do diretório está assim
imobiliaria.ear
|-commons-beanutils-1.7.0.jar
|-segviaejb.jar
|-imobiliaria.war
|-META-INF
|-application.xml
|-orion-application.xml
Procurei em fóruns e em documentação, segui as dicas ali descritas, mas não obtive sucesso!
Vale a pena salientar que, quando não estava rodando em cluster (ou stand alone), ou até mesmo acessando as máquinas separadas (http://maquina-01/app ou
http://maquina-02/app) a aplicação rola ok!
Aguardo sugestões,
Obrigado!