RMI Callback usando Container OC4J - problema

Perguntas relacionadas a questões técnicas do Oracle EBS. Criação de Concorrentes, Value Sets, Alerts, Forms Personalizations, Configurações, etc
Responder
fredrischter
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qua, 06 Ago 2008 9:30 am
Localização: Vitória - ES

RMI Callback usando Container OC4J - Servidor não enxerga cliente


Oi pessoal, sou Fred, trabalho com programação em java,

Estou tendo um problema ao tentar usar RMI Callback, com servidor Oracle Application Server 10g, container OC4J.

Crio a aplicação servidor, juntando com ela no JAR a interface do cliente para ele poder executar o callback, faço deploy no container OC4J e ele fica rodando. Na hora que eu executo o cliente dá essa exceção.

Tenho vários EJBs 2.1 stateless funcionando perfeitamente, o meu problema é ao tentar usar o callback. Preciso usar EJB 2.1, preciso usar AS 10g da oracle e preciso usar callback.

Lembrando que o código não apresenta problemas de sintaxe ou construção, eu omiti a maioria do código pois não tem a ver com o problema, as partes funcionais estão aí abaixo.

Como pode-se ver no stacktrace do erro, o servidor é chamado para registrar o cliente, porém, ao invés de apenas levar em conta a interface, ele tenta instanciar a classe que implementa a interface (ele realmente não tem essa classe com ele, pois ele não deve conhecer a implementação), e não acha essa classe, realmente não deve achar. o problema é ele querer instanciar essa classe ao invés de usar somente a interface para as chamadas.

Quando eu fiz esse programa com o servidor feito na mão, sem usar o container da oracle, funcionava o callback, ou seja,o cliente exportava o seu objeto e o servidor enxergava ele, agora ele não enxerga.

Aqui o trecho do EJB 2.1 que causa o erro:

Selecionar tudo

// ------------------- EJB no qual o cliente se registrará e depois receberá chamadas remotas ---------------------------------------------------

public interface Patio extends EJBObject {
...
    boolean registrarCampoListener(CampoListener cl) throws RemoteException; // método que deve registrar um cliente para receber chamadas do servidor
}

public interface PatioHome extends EJBHome {
    Patio create() throws RemoteException, CreateException;
}

public class PatioBean implements SessionBean {
    public boolean registrarCampoListener(CampoListener cl) {
        try {
            consoles.addElement(cl);
            return true;
        } catch(Exception e) {
            return false;
        }
    }
}

// ----------------------- Interface do cliente -----------------------------------------------


public interface CampoListener extends Remote {
    public int acao(String acao) throws RemoteException;
}

// ----------------------- classe que implementa a interface ---------------

public class AcessoServicos implements CampoListener,Serializable {
    Patio pa; // É A REFERENCIA REMOTA DO EJB QUE ESTÁ NO SERVIDOR, JÁ INSTANCIADA E FUNCIONANDO
....
    public static void main(String[] args) {
        System.out.println("Executando teste:");
        System.out.println("Registrando Listener de Campo:");
            try {
                UnicastRemoteObject.exportObject((CampoListener)as);               // ESTE FUNCIONA
                
                boolean result=pa.registrarCampoListener((CampoListener)as);  // AQUI TEMOS O PROBLEMA

                System.out.println("registro realizado com sucesso: "+result);
            } catch (RemoteException e) {
                System.out.println("Excessao ao tentar exportar cliente");
                e.printStackTrace();
            }
    }

    public int acao(String acao) {
        System.out.println("acao recebida: " + acao);
        return 1111;
    }
}

Selecionar tudo

// --------------------------------------STACKTRACE------------------------------------------------------------------






06/08/2008 09:36:26 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
WARNING: Exceção retornada pelo servidor remoto: {0}
oracle.classloader.util.AnnotatedClassNotFoundException: 

	  Classe não encontrada: com.vale.lg.controlepatio.ccp.client.AcessoServicos

	Classe dependente: com.evermind.io.ClassLoaderObjectInputStream
	         Carregador: oc4j:10.1.3
	    Origem do Código: /D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar
	  Configuração: <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar

Este carregador foi iniciado em CCP.root:0.0.0 usando o método Class.forName().

A classe não encontrada não está disponível nos códigos-fonte ou nos carregadores no sistema.
	at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2068) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at oracle.classloader.PolicyClassLoader.internalLoadClass (PolicyClassLoader.java:1679) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1635) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1620) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.lang.Class.forName0 (Native method) [unknown, by unknown]
	at java.lang.Class.forName (Class.java:242) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at com.evermind.io.ClassLoaderObjectInputStream.resolveClass (ClassLoaderObjectInputStream.java:33) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1538) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readClassDesc (ObjectInputStream.java:1460) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1693) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readObject0 (ObjectInputStream.java:1299) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readObject (ObjectInputStream.java:339) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at com.evermind.server.rmi.RMIProtocol$Version.unmarshallParameterDirectly (RMIProtocol.java:402) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIProtocol$Version_1_0.unmarshallParameter (RMIProtocol.java:471) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIProtocol.readObject (RMIProtocol.java:80) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIProtocol.readValue (RMIProtocol.java:161) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.ServerRmiMessageHandler.handleMethodInvocation (ServerRmiMessageHandler.java:514) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.ServerRmiMessageHandler.handleOrmiRequest (ServerRmiMessageHandler.java:272) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.ServerRmiMessageHandler.dispatchRequest (ServerRmiMessageHandler.java:241) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIServerConnection.processReceivedCommand (RMIServerConnection.java:176) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIConnection.handleCommand (RMIConnection.java:152) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIConnection.listenForOrmiCommands (RMIConnection.java:127) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIServerConnection.listenForOrmiCommands (RMIServerConnection.java:390) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIConnection.run (RMIConnection.java:107) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run (ReleasableResourcePooledExecutor.java:303) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at java.lang.Thread.run (Thread.java:595) [jre bootstrap, by jre.bootstrap:1.5.0_06]

oracle.oc4j.rmi.OracleRemoteException: Invocation error: oracle.classloader.util.AnnotatedClassNotFoundException: 

	  Classe não encontrada: com.vale.lg.controlepatio.ccp.client.AcessoServicos

	Classe dependente: com.evermind.io.ClassLoaderObjectInputStream
	         Carregador: oc4j:10.1.3
	    Origem do Código: /D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar
	  Configuração: <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar

Este carregador foi iniciado em CCP.root:0.0.0 usando o método Class.forName().

A classe não encontrada não está disponível nos códigos-fonte ou nos carregadores no sistema.
	at com.evermind.server.rmi.RMICall.throwRecordedException(RMICall.java:139)
	at com.evermind.server.rmi.RMIClientConnection.obtainRemoteMethodResponse(RMIClientConnection.java:517)
	at com.evermind.server.rmi.RMIClientConnection.invokeMethod(RMIClientConnection.java:461)
	at com.evermind.server.rmi.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:63)
	at com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(RecoverableRemoteInvocationHandler.java:28)
	at com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(StatelessSessionRemoteInvocationHandler.java:43)
	at __Proxy1.registrarCampoListener(Unknown Source)
	at com.vale.lg.controlepatio.ccp.client.AcessoServicos.main(AcessoServicos.java:233)

	Nested exception is:
oracle.classloader.util.AnnotatedClassNotFoundException: 

	  Classe não encontrada: com.vale.lg.controlepatio.ccp.client.AcessoServicos

	Classe dependente: com.evermind.io.ClassLoaderObjectInputStream
	         Carregador: oc4j:10.1.3
	    Origem do Código: /D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar
	  Configuração: <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar

Este carregador foi iniciado em CCP.root:0.0.0 usando o método Class.forName().

A classe não encontrada não está disponível nos códigos-fonte ou nos carregadores no sistema.
	at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2068) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at oracle.classloader.PolicyClassLoader.internalLoadClass (PolicyClassLoader.java:1679) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1635) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1620) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@10469011]
	at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.lang.Class.forName0 (Native method) [unknown, by unknown]
	at java.lang.Class.forName (Class.java:242) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at com.evermind.io.ClassLoaderObjectInputStream.resolveClass (ClassLoaderObjectInputStream.java:33) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1538) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readClassDesc (ObjectInputStream.java:1460) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1693) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readObject0 (ObjectInputStream.java:1299) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at java.io.ObjectInputStream.readObject (ObjectInputStream.java:339) [jre bootstrap, by jre.bootstrap:1.5.0_06]
	at com.evermind.server.rmi.RMIProtocol$Version.unmarshallParameterDirectly (RMIProtocol.java:402) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIProtocol$Version_1_0.unmarshallParameter (RMIProtocol.java:471) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIProtocol.readObject (RMIProtocol.java:80) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIProtocol.readValue (RMIProtocol.java:161) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.ServerRmiMessageHandler.handleMethodInvocation (ServerRmiMessageHandler.java:514) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.ServerRmiMessageHandler.handleOrmiRequest (ServerRmiMessageHandler.java:272) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.ServerRmiMessageHandler.dispatchRequest (ServerRmiMessageHandler.java:241) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIServerConnection.processReceivedCommand (RMIServerConnection.java:176) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIConnection.handleCommand (RMIConnection.java:152) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIConnection.listenForOrmiCommands (RMIConnection.java:127) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIServerConnection.listenForOrmiCommands (RMIServerConnection.java:390) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.server.rmi.RMIConnection.run (RMIConnection.java:107) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run (ReleasableResourcePooledExecutor.java:303) [/D:/product/10.1.3.1/OracleAS_1/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in D:\product\10.1.3.1\OracleAS_1\j2ee\home\oc4j.jar), by oc4j:10.1.3]
	at java.lang.Thread.run (Thread.java:595) [jre bootstrap, by jre.bootstrap:1.5.0_06]
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes