[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: [reverbel-sod] Descritores



Olá Rafael!

As classes do jnp-client.jar e do jboss-commom-client.jar estão todas
presentes no jbossall-client.jar. Portanto, adicionar esses dois
outros jars ao seu classpath não deveria fazer diferença alguma.

No código que você enviou estava a seguinte linha:

env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming.client");

Esta linha está correta. Porém, a primeira mensagem de erro que você me postou:

javax.naming.NameNotFoundException: client not bound

é "melhor" do que:

javax.naming.NameNotFoundException: comp not bound

A primeira mensagem dizia que o lookup só não funciou porque nenhuma
instância de javax.xml.rpc.Service estava registrada no JNDI com o
nome que você estava procurando. Já a segunda mensagem me parece ter
uma causa um pouco mais profunda. Vou tentar explicar.

Quando você faz um lookup por "java:/comp/env/blablabla", o que o
JBoss faz é o seguinte: ele vê que a string começa com "java:", e
então ele vai procurar em algum dos pacotes mencionados em
Context.URL_PKG_PREFIXES uma classe chamada "javaURLContextFactory",
que deve estar dentro de um pacote chamado "java". Por exemplo, se
Context.URL_PKG_PREFIXES == "org.jboss.naming.client", o JBoss vai
procurar por uma classe chamada
org.jboss.naming.client.java.javaURLContextFactory. É essa classe que
sabe resolver lookups de clientes J2EE que rodam fora do servidor de
aplicações. Eu vejo duas possíveis explicações para o erro que você me
enviou:

1. A classe "org.jboss.naming.client.java.javaURLContextFactory" não
está no classpath do seu cliente, o que significa que o
jbossall-client.jar não está.

2. A propriedade Context.URL_PKG_PREFIXES não inclui o pacote
"org.jboss.naming.client".

São as duas únicas explicações que consigo ver no momento. Por favor
verifique cuidadosamente a sua implementação, deve ser um detalhe que
está causando esse erro.

Bom trabalho!

On 6/9/06, Rafael Cosentino <rcosen@xxxxxxxxx> wrote:
Removi o cast para Service e realmente deu Exception no lookup(), não achou
algumas classes e eu adicionei o jnp-client.jar e jboss-commom-client.jar e
resolveu, porém agora ele da essa Exception:

javax.naming.NameNotFoundException: comp not bound
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
    at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
    at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
    at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
    at sun.rmi.transport.Transport$1.run(Transport.java:153)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java
:460)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(
TCPTransport.java:701)
    at java.lang.Thread.run(Thread.java:595)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(
StreamRemoteCall.java:247)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java
:223)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
    at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)

As propriedades para o InitialContext são:

env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "
org.jnp.interfaces.NamingContextFactory");
env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming.client");
env.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099");
env.setProperty("j2ee.clientName", "client");

o valor ultima propriedade, client, foi definido no jboss-client.xml.

Os valores para essas propriedades estão errados?

vlw!

2006/6/9, Ivan Neto <ivanneto@xxxxxxxxx>:
>
> Olá Rafael!
>
> Então, o ClassCastException pode tanto ser por causa do lookup quanto
> por causa do cast para Service. Sem a stacktrace eu não tenho como
> saber. Tente retirar o cast para Service e veja se dá
> ClassCastException: se continuar dando você já sabe que é o lookup.
>
> O que eu tenho no classpath do meu cliente é o seguinte:
>
> <path id="jbossws.client.classpath">
>    <pathelement location="${jboss.client}/activation.jar"/>
>    <pathelement location="${jboss.client}/commons-logging.jar"/>
>    <pathelement location="${jboss.client}/javassist.jar"/>
>    <pathelement location="${jboss.client}/jbossall-client.jar"/>
>    <pathelement location="${jboss.client}/jbossws14.client.jar"/>
>    <pathelement location="${jboss.client}/log4j.jar"/>
>    <pathelement location="${jboss.client}/mail.jar"/>
>    <pathelement location="${jboss.client}/jbossretro-rt.jar"/>
>    <pathelement location="${jboss.client}/jboss-backport-concurrent.jar"/>
> </path>
>
> Tudo isso mais o XercesImpl.jar. Certifique-se de que essas classes
> realmente estão no classpath quando você executa o cliente.
>
> Bom trabalho!
>
>