Hi Jose,
It could be your project config problem inside eclipse.
Your appclient MANIFEST.MF file is missing a Main-Class attr. I changed
it to:
Manifest-Version: 1.0
Class-Path:
Main-Class: client.Main
You also need to include the remote business interface class in
appclient jar, as follows:
jar tvf $tmp/mdb-client.jar
62 Fri Feb 11 15:02:20 EST 2011 META-INF/MANIFEST.MF
0 Wed Feb 09 17:52:16 EST 2011 META-INF/
433 Wed Feb 09 17:52:16 EST 2011 META-INF/application-client.xml
0 Wed Feb 09 08:40:46 EST 2011 client/
1090 Fri Feb 11 14:36:06 EST 2011 client/Main.class
247 Fri Feb 11 14:35:28 EST 2011 sb/PublisherBeanRemote.class
I was able to run it with these changes:
asadmin create-jms-resource --restype javax.jms.TopicConnectionFactory
jms/ConnectionFactory
asadmin create-jms-resource --restype javax.jms.Topic jms/Topic
asadmin deploy --force true $tmp/mdb-bean.jar
asadmin deploy --force true --retrieve /tmp $tmp/mdb-client.jar
appclient -client /tmp/mdb-clientClient.jar
These are logged in server.log:
[#|2011-02-11T15:04:35.303-0500|INFO|glassfish3.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=160;_ThreadName=Thread-1;|PUBLISHER:
Setting message text to: TR|#]
[#|2011-02-11T15:04:35.399-0500|INFO|glassfish3.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=160;_ThreadName=Thread-1;|PUBLISHER:
Setting message text to: ET|#]
[#|2011-02-11T15:04:35.430-0500|INFO|glassfish3.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=160;_ThreadName=Thread-1;|ET
to TR say :ET#Hola TR...|#]
[#|2011-02-11T15:04:35.432-0500|INFO|glassfish3.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=167;_ThreadName=Thread-1;|TR
to ET say :TR#Hola ET...|#]
-cheng
On 2/11/11 9:23 AM, Jose Alvarez de Lara wrote:
> Thanks Chang. Here it is.
>
> *From:* Cheng Fang <mailto:cheng.fang_at_oracle.com>
> *Sent:* Thursday, February 10, 2011 8:19 PM
> *To:* ejb_at_glassfish.java.net <mailto:ejb_at_glassfish.java.net>
> *Cc:* Jose Alvarez de Lara <mailto:dakhla.0563_at_hotmail.com>
> *Subject:* Re: Naming Exception
>
> Can you attach a test app, preferably with source code?
>
> Thanks,
> -cheng
>
> On 2/10/11 9:41 AM, Jose Alvarez de Lara wrote:
>> Hi,
>> I am trying an Application Client Project on Eclipse Helios SR1. The
>> app contains a mdb-bean.jar in its classpath that is
>> a mdb publish/subscribe and an ejb with a remote interface.
>> This is my code in the client,
>> private void test() {
>> try {
>> PublisherBeanRemote publisher = (PublisherBeanRemote) new
>> InitialContext().lookup("java:global/mdb-bean/PublisherBean");
>> publisher.publishNews("TR", "ET#Hola TR...");
>> publisher.publishNews("ET", "TR#Hola ET...");
>> } catch (NamingException e) {
>> // TODO Auto-generated catch block
>> e.printStackTrace();
>> }
>> }
>> being PublisherBean the implementation of the ejb.
>> And this is what I get when I run the app,
>> java.lang.NullPointerException
>> at
>> com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:297)
>> at
>> com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:271)
>> at
>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430)
>> at javax.naming.InitialContext.lookup(InitialContext.java:392)
>> at client.Main.test(Main.java:25)
>> at client.Main.main(Main.java:13)
>> javax.naming.NamingException: Lookup failed for
>> 'java:global/mdb-bean/PublisherBean' in SerialContext [Root exception
>> is javax.naming.NamingException: Unable to acquire
>> SerialContextProvider for SerialContext [Root exception is
>> java.lang.NullPointerException]]
>> at
>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
>> at javax.naming.InitialContext.lookup(InitialContext.java:392)
>> at client.Main.test(Main.java:25)
>> at client.Main.main(Main.java:13)
>> Caused by: javax.naming.NamingException: Unable to acquire
>> SerialContextProvider for SerialContext [Root exception is
>> java.lang.NullPointerException]
>> at
>> com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:276)
>> at
>> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430)
>> ... 3 more
>> Caused by: java.lang.NullPointerException
>> at
>> com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:297)
>> at
>> com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:271)
>> ... 4 more
>> The only reason I guess is causing this exception is that the
>> mdb-bean.jar is not in the classpath.
>> How can I be sure about it?
>> Thanks in advance,
>> Jose