Steps i have done
- i packaged a stateless EJB "EJB.jar"
EJB.jar
|
-->META-INF
|-->jndi.properties
|-->MANIFEST.MF
-->pac //a package contating classes
|-->Calc.class
|-->CalcBean.class
jndi.properties:-
java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
java.naming.factory.url.pkgs=com.sun.enterprise.naming
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
java.naming.provider.url=iiop://localhost:3700
MANIFEST.MF:-
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_09-b03 (Sun Microsystems Inc.)
Calc.java:-
package pac;
import javax.ejb.Remote;
@Remote
public interface Calc
{
public String foo();
}
CalcBean.java:-
package pac;
import javax.ejb.Stateless;
import pac.Calc;
@Stateless
public class CalcBean implements Calc
{
public CalcBean()
{
}
public String foo()
{
return "EJB Worked";
}
}
- i runned glassfish "glassfish-v1_ur1-p01-b02"
- i opened the admin console
- i went through EJB section
- i deployed the "EJB.jar" and it was succesful
- i opend JNDI tab and it was:-
Jndi Entries Root ( server )
|-->UserTransaction
|-->pac.Calc
Name: pac.Calc
Class: javax.naming.Reference
|-->pac.Calc#pac.Calc
Name: pac.Calc
Class:
|-->jdbc
|-->ejb
|-->pac.Calc__3_x_Internal_RemoteBusinessHome__
o - UserTransaction: com.sun.enterprise.distributedtx.UserTransactionImpl
o - pac.Calc: javax.naming.Reference
o - pac.Calc#pac.Calc: javax.naming.Reference
o - jdbc: com.sun.enterprise.naming.TransientContext
o - __SYSTEM: com.sun.enterprise.naming.TransientContext
o - ejb: com.sun.enterprise.naming.TransientContext
o - pac.Calc__3_x_Internal_RemoteBusinessHome__: javax.naming.Reference
- i created a web application and added a servlet
private Calc cal = null;
InitialContext ctx = new InitialContext();
cal = (Calc) ctx.lookup("pac.Calc");
cal.foo();
- when i run the web application it gave me exceptions
WARNING
Logger:
javax.enterprise.system.stream.err
Name-Value Pairs:
_ThreadID=15;_ThreadName=httpWorkerThread-8080-0;_RequestID=40748430-2c9a-4eef-8731-c46c4bf2f1a3;
Record Number:
1489
Message ID:
javax.naming.NamingException
Complete Message
ejb ref resolution error for remote business interfacepac.Calc [Root exception is java.lang.ClassNotFoundException: pac.Calc]
at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:350)
at com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:61)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:314)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at servlet.ServletTest.doGet(ServletTest.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
Caused by: java.lang.ClassNotFoundException: pac.Calc
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1292)
at com.sun.ejb.EJBUtils.getBusinessIntfClassLoader(EJBUtils.java:568)
at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:320)
... 31 more
Error
Timestamp:
Apr 21, 2007 07:31:59.234
Log Level:
SEVERE
Logger:
javax.enterprise.system.container.web
Name-Value Pairs:
_ThreadID=15;_ThreadName=httpWorkerThread-8080-0;_RequestID=40748430-2c9a-4eef-8731-c46c4bf2f1a3;
Record Number:
1490
Message ID:
StandardWrapperValve[ServletTest]
Complete Message
Servlet.service() for servlet ServletTest threw exception
java.lang.NoClassDefFoundError: pac/Calc
at servlet.ServletTest.doGet(ServletTest.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
if any help i appreciate it
Thank's in advance
[Message sent by forum member 'bakr_awad' (bakr_awad)]
http://forums.java.net/jive/thread.jspa?messageID=213530