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

Re: [reverbel-sod] Descritores



Olá Ivan,

resolvi esses problemas. Compilei pela linha de comando e descobri que jboss-commom-client.jar estava corrompido não sei porque o eclipse não informava esse erro.

O modulo dos descritores para o cliente registra uma instancia de javax.xml.rpc.Service, tem como eu saber que essa instancia foi corretamente registrada?

Agora o ctx.lookup("java:comp/env/service/") não dá erro, mas ctx.lookup("java:comp/env/service/VideoRentalStoreService") solta a execption:

2006-06-10 10:42:55,706 ERROR ws.jaxrpc.ServiceObjectFactory  -> Cannot create service
java.lang.NullPointerException
    at org.apache.xerces.impl.xs.XSModelGroupImpl.getAnnotation(Unknown Source)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindParticle(XsdBinder.java:866)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindComplexType(XsdBinder.java:726)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindType (XsdBinder.java:386)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindElement(XsdBinder.java:1004)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bind(XsdBinder.java:319)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bind (XsdBinder.java:243)
    at org.jboss.ws.jaxb.SchemaBindingBuilder.buildSchemaBinding(SchemaBindingBuilder.java:82)
    at org.jboss.ws.metadata.ServiceMetaData.getSchemaBinding(ServiceMetaData.java:332)
    at org.jboss.ws.metadata.ServiceMetaData.eagerInitialize (ServiceMetaData.java:400)
    at org.jboss.ws.metadata.UnifiedMetaData.eagerInitialize(UnifiedMetaData.java:143)
    at org.jboss.ws.metadata.JSR109ClientMetaDataBuilder.buildMetaData(JSR109ClientMetaDataBuilder.java :125)
    at org.jboss.ws.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:112)
    at org.jboss.ws.jaxrpc.ServiceObjectFactory.getObjectInstance(ServiceObjectFactory.java:182)
    at javax.naming.spi.NamingManager.getObjectInstance (NamingManager.java:304)
    at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1125)
    at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1142)
    at org.jnp.interfaces.NamingContext.lookup (NamingContext.java:705)
    at org.jboss.naming.client.java.javaURLContextFactory$EncContextProxy.invoke(javaURLContextFactory.java:135)
    at $Proxy0.lookup(Unknown Source)
    at javax.naming.InitialContext.lookup (InitialContext.java:351)
    at client.Client.doWork(Client.java:29)
    at client.Client.main(Client.java:70)
javax.naming.NamingException: Could not dereference object [Root exception is java.lang.NullPointerException ]null

    at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1150)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:705)
    at org.jboss.naming.client.java.javaURLContextFactory$EncContextProxy.invoke (javaURLContextFactory.java:135)
    at $Proxy0.lookup(Unknown Source)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at client.Client.main(Client.java:70)
Caused by: java.lang.NullPointerException
    at org.apache.xerces.impl.xs.XSModelGroupImpl.getAnnotation(Unknown Source)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindParticle(XsdBinder.java:866)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindComplexType (XsdBinder.java:726)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindType(XsdBinder.java:386)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bindElement(XsdBinder.java:1004)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bind (XsdBinder.java:319)
    at org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bind(XsdBinder.java:243)
    at org.jboss.ws.jaxb.SchemaBindingBuilder.buildSchemaBinding(SchemaBindingBuilder.java:82)
    at org.jboss.ws.metadata.ServiceMetaData.getSchemaBinding (ServiceMetaData.java:332)
    at org.jboss.ws.metadata.ServiceMetaData.eagerInitialize(ServiceMetaData.java:400)
    at org.jboss.ws.metadata.UnifiedMetaData.eagerInitialize(UnifiedMetaData.java:143)
    at org.jboss.ws.metadata.JSR109ClientMetaDataBuilder.buildMetaData (JSR109ClientMetaDataBuilder.java:125)
    at org.jboss.ws.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:112)
    at org.jboss.ws.jaxrpc.ServiceObjectFactory.getObjectInstance(ServiceObjectFactory.java:182)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1125)
    at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure (NamingContext.java:1142)
    ... 6 more


Isso siginifica que a instancia de javax.xml.rpc.Service é nula?

vlw,
Cosen


2006/6/9, Ivan Neto < ivanneto@xxxxxxxxx>:
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!