• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Liutauras Vilda
  • Jeanne Boyarsky
  • paul wheaton
Sheriffs:
  • Ron McLeod
  • Devaka Cooray
  • Henry Wong
Saloon Keepers:
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Frits Walraven

EJB +ClassNotFoundException

 
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi

I'm getting the following error while running..
can anybody help ... don't know whats with this....

18:23:27,277 INFO [EARDeployer] Undeploying J2EE application, destroy step: file:/home/leema/apps/jboss/server/default/deploy/HelloApp.ear
18:23:29,231 INFO [EARDeployer] Init J2EE application: file:/home/leema/apps/jboss/server/default/deploy/HelloApp.ear
18:25:04,716 INFO [EjbModule] Deploying Hello
18:26:07,529 INFO [ProxyFactory] Bound EJB Home 'Hello' to jndi 'ejb/Hello'
18:26:07,805 INFO [EJBDeployer] Deployed: file:/home/leema/apps/jboss/server/default/tmp/deploy/tmp3957HelloApp.ear-contents/HelloEJB.jar
18:26:49,493 INFO [TomcatDeployer] deploy, ctxPath=/hello, warUrl=.../tmp/deploy/tmp3957HelloApp.ear-contents/HelloWeb.war/
18:27:48,473 INFO [JBossCacheManager] init(): replicationGranularity_ is 0 and invaldateSessionPolicy is 2
18:27:48,968 ERROR [JBossCacheManager] JBossCacheService to Tomcat clustering not found
18:27:48,993 ERROR [TomcatDeployer] Failed to setup clustering, clustering disabled
18:28:54,098 INFO [EARDeployer] Started J2EE application: file:/home/leema/apps/jboss/server/default/deploy/HelloApp.ear
18:33:53,327 INFO [STDOUT] java.lang.ClassNotFoundException: HelloHome
18:33:53,382 ERROR [[Hello]] Allocate exception for servlet Hello
javax.servlet.ServletException: Lookup of java:/comp/env/ failed
at test.web.HelloServlet.init(HelloServlet.java:63)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)

my files are like this..

ejb-jar.xml

<ejb-jar >

<description></description>
<display-name></display-name>
<enterprise-beans>
<!-- Session Beans -->
<session >
<description></description>
<display-name>Name for Hello</display-name>
<ejb-name>Hello</ejb-name>
<home>test.interfaces.HelloHome</home>
<remote>test.interfaces.Hello</remote>
<ejb-class>test.ejb.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</ejb-jar>

jboss.xml

<jboss>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<jndi-name>ejb/Hello</jndi-name>
</session>
</enterprise-beans>

jboss-web.xml

<jboss-web>
<ejb-ref>
<ejb-ref-name>ejb/Hello</ejb-ref-name>
<jndi-name>ejb/Hello</jndi-name>
</ejb-ref>
</jboss-web>

web.xml

<web-app >
<distributable/>
<servlet>
<servlet-name>Hello</servlet-name>
<display-name>Name for Hello</display-name>
<description><![CDATA[Description for Hello]]></description>
<servlet-class>test.web.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
<ejb-ref >
<description><![CDATA[Reference to Hello]]></description>
<ejb-ref-name>ejb/Hello</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>test.interfaces.HelloHome</home>
<remote>test.interfaces.Hello</remote>
</ejb-ref>

</web-app>


client

public class HelloServlet extends HttpServlet {
private HelloHome home;
public HelloServlet() {
super();
}
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {

Context context = new InitialContext();
Object ref = context.lookup("java:comp/env/ejb/Hello");Object ob = PortableRemoteObject.narrow(ref,Class.forName("HelloHome"));
home = (HelloHome) ob;
} catch (Exception e) {
System.out.println(e);
throw new ServletException("Lookup of java:/comp/env/ failed");
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,
IOException {
// TODO Auto-generated method stub
System.out.println(" in dopost ");
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();

out.println("<html><head><title>");
out.println("Hello Bean");
out.println("</title></head>");
out.println("<body>");

out.println("<h1>");
out.println("Hello Bean");
out.println("</h1>");
try {
Hello bean = home.create();
String ret = bean.sayHello("Hello World String");
out.println(ret);
bean.remove();
out.println("<p>");
out.print("The ");
out.print(ret);
out.println("</p>");
} catch (Exception e) {
out.println(e.getMessage());
e.printStackTrace(out);
} finally {
out.println("</body></html>");
out.close();
}
}

}
 
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Change the init(ServletConfig) method of your servlet



If you are using Class.forName() then you should be using fully qualified class name like Class.forName("test.interfaces.HelloHome").

Another solution would be to use



Hope that helps,

Cheers
 
Roshnara Rose
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Pranav,

I'm great to have your reply. I did tried it both way. Now a new exception is throwing. That is like this.. What went wrong in the code.. I'm using jboss-IDE for the development..

This is at the jboss's console..

09:33:28,813 INFO [STDOUT] ejb/HelloHome
09:33:29,095 INFO [STDOUT] java.lang.ClassCastException
09:33:29,199 ERROR [[Hello]] Allocate exception for servlet Hello
javax.servlet.ServletException: Lookup of java:/comp/env/ failed
at test.web.HelloServlet.init(HelloServlet.java:64)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
 
Pranav Shukla
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Roshnara,

Please go through this entire thread. This might solve your problem.

Cheers
 
Roshnara Rose
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Pranav,

Thanks a lot.. Its working..

Regards,
Leema
 
Pranav Shukla
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You are welcome!
 
Pranav Shukla
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Roshnara Rose,

Please change your display name to conform to javaranch's naming policy.

Thanks,
 
Yup, yup, yup. Tiny ad:
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
reply
    Bookmark Topic Watch Topic
  • New Topic