SCJD, SCBCD, SCWCD
SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCBCD 5
Visit my blog
SCJP 1.4 (88%) - SCJP 5.0 Upgrade (93%) - SCWCD 1.4 (97%) - SCBCD 5.0 (98%)
Originally posted by Sergio Tridente:
Also, tell us how you are running the client. Are you using a client-container? Injection does not work outside the container.
Buildfile: build.xml
init:
[delete] Deleting 4 files from D:\Programs\Eclipse\HelloEJB\build
[delete] Deleted 6 directories from D:\Programs\Eclipse\HelloEJB\build
[delete] Deleting 2 files from D:\Programs\Eclipse\HelloEJB\dist
[mkdir] Created dir: D:\Programs\Eclipse\HelloEJB\build\ejb
[mkdir] Created dir: D:\Programs\Eclipse\HelloEJB\build\client
compile:
[javac] Compiling 3 source files to D:\Programs\Eclipse\HelloEJB\build\ejb
[javac] Compiling 1 source file to D:\Programs\Eclipse\HelloEJB\build\client
pack:
[jar] Building jar: D:\Programs\Eclipse\HelloEJB\dist\ejb.jar
[jar] Building jar: D:\Programs\Eclipse\HelloEJB\dist\client.jar
deploy:
[echo] dist/ejb.jar
[exec] Command deploy executed successfully.
run:
[exec] 20.08.2008 15:52:32 com.sun.enterprise.appclient.MainWithModuleSupport <init>
[exec] WARNING: ACC003: Application threw an exception.
[exec] com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref helloEJB.client.Main/hello@jndi: hello.bean.Hello@[email protected]@Session@null into class helloEJB.client.Main
[exec] at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:387)
[exec] at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:206)
[exec] at com.sun.enterprise.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:144)
[exec] at com.sun.enterprise.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:136)
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:420)
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
[exec] at com.sun.enterprise.appclient.Main.main(Main.java:200)
[exec] Caused by: javax.naming.NameNotFoundException: hello.bean.Hello#hello.bean.Hello not found
[exec] at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:216)
[exec] at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:188)
[exec] at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)
[exec] at com.sun.enterprise.naming.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:129)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[exec] at java.lang.reflect.Method.invoke(Method.java:597)
[exec] at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
[exec] at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
[exec] at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
[exec] at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
[exec] at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
[exec] Exception in thread "main" java.lang.RuntimeException: com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref helloEJB.client.Main/hello@jndi: hello.bean.Hello@[email protected]@Session@null into class helloEJB.client.Main
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:487)
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
[exec] at com.sun.enterprise.appclient.Main.main(Main.java:200)
[exec] Caused by: com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref helloEJB.client.Main/hello@jndi: hello.bean.Hello@[email protected]@Session@null into class helloEJB.client.Main
[exec] at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:387)
[exec] at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:206)
[exec] at com.sun.enterprise.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:144)
[exec] at com.sun.enterprise.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:136)
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:420)
[exec] ... 2 more
[exec] Caused by: javax.naming.NameNotFoundException: hello.bean.Hello#hello.bean.Hello not found
[exec] at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:216)
[exec] at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:188)
[exec] at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)
[exec] at com.sun.enterprise.naming.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:129)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[exec] at java.lang.reflect.Method.invoke(Method.java:597)
[exec] at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
[exec] at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
[exec] at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
[exec] at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
[exec] at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
BUILD SUCCESSFUL
Total time: 8 seconds
SCJD, SCBCD, SCWCD
SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCBCD 5
Visit my blog
SCJP 1.4 (88%) - SCJP 5.0 Upgrade (93%) - SCWCD 1.4 (97%) - SCBCD 5.0 (98%)
Originally posted by Sergio Tridente:
Alexander,
If I understand it correctly you are deploying a file named ejb.jar (which contains your bean class, remote interface and META-INF/ejb-jar.xml) into Glassfish and you have another jar (client.jar) which contains your client and the remote interfaces of your bean. Is this right?
Please:
1) Explain how both JARs are packed and how (which one/s) you are deploying.
2) Try packaging the ejb-jar.xml file inside your client.jar (I don't know how this works).
3) Try doing a JNDI lookup intead of injecting the bean in your client. Does this work? (I suppose it does not.)
Post the answers back, please.
META-INF/
META-INF/MANIFEST.MF
hello/
hello/bean/
hello/bean/Hello.class
hello/bean/HelloBean.class
META-INF/ejb-jar.xml
META-INF/
META-INF/MANIFEST.MF
helloEJB/
helloEJB/client/
helloEJB/client/Main.class
META-INF/ejb-jar.xml
Buildfile: build.xml
init:
[delete] Deleting 3 files from D:\Programs\Eclipse\HelloEJB\build
[delete] Deleted 6 directories from D:\Programs\Eclipse\HelloEJB\build
[delete] Deleting 2 files from D:\Programs\Eclipse\HelloEJB\dist
[mkdir] Created dir: D:\Programs\Eclipse\HelloEJB\build\ejb
[mkdir] Created dir: D:\Programs\Eclipse\HelloEJB\build\client
compile:
[javac] Compiling 2 source files to D:\Programs\Eclipse\HelloEJB\build\ejb
[javac] Compiling 1 source file to D:\Programs\Eclipse\HelloEJB\build\client
pack:
[jar] Building jar: D:\Programs\Eclipse\HelloEJB\dist\ejb.jar
[jar] Building jar: D:\Programs\Eclipse\HelloEJB\dist\client.jar
deploy:
[echo] dist/ejb.jar
[exec] Command deploy executed successfully.
run:
[exec] com.sun.enterprise.appclient.UserError: The archive D:\Programs\Eclipse\HelloEJB\dist\client.jar seems to be valid but an app client or an enterprise app was expected
BUILD SUCCESSFUL
Total time: 8 seconds
SCJD, SCBCD, SCWCD
SCJD, SCBCD, SCWCD