Toral
Toral

Reputation: 101

Initial Context Websphere 8.0

I am using EJB3.0 WAS8 and Spring 3. I have my Web components on a web server and have deployed the EAR on App server. My web components work fine until it has to do a context look up. When I go for InitialContext, I get the following exception:

type Exception report

message Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com.ibm.ws.exception.WsException

description The server encountered an internal error (Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com.ibm.ws.exception.WsException) that prevented it from fulfilling this request.

exception 

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com.ibm.ws.exception.WsException
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:812)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:536)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.NoClassDefFoundError: com.ibm.ws.exception.WsException
    java.lang.ClassLoader.defineClassImpl(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:275)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    java.lang.ClassLoader.defineClassImpl(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:275)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    java.lang.J9VMInternals.verifyImpl(Native Method)
    java.lang.J9VMInternals.verify(J9VMInternals.java:72)
    java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
    com.ibm.websphere.naming.WsnInitialContextFactory.<clinit>(WsnInitialContextFactory.java:68)
    java.lang.J9VMInternals.initializeImpl(Native Method)
    java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    java.lang.Class.forNameImpl(Native Method)
    java.lang.Class.forName(Class.java:174)
    javax.naming.spi.NamingManager$3.run(NamingManager.java:873)
    javax.naming.spi.NamingManager$3.run(NamingManager.java:870)
    java.security.AccessController.doPrivileged(AccessController.java:228)
    javax.naming.spi.NamingManager.factoryForName(NamingManager.java:869)
    javax.naming.spi.NamingManager.factoryForName(NamingManager.java:820)
    javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:246)
    javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:318)
    javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:348)
    javax.naming.InitialContext.internalInit(InitialContext.java:286)
    javax.naming.InitialContext.<init>(InitialContext.java:211)
    com.paam.util.ServiceLocator.getInitialContext(ServiceLocator.java:43)
    com.paam.util.RemoteObjectCall.remoteObj(RemoteObjectCall.java:14)
    com.paam.delegates.PAAMDelegate.InsertPAAMDetails(PAAMDelegate.java:18)
    com.paam.controllers.NewPaamController.newpaamsubmit(NewPaamController.java:77)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:626)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:150)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:354)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:342)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:536)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.ClassNotFoundException: com.ibm.ws.exception.WsException
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    java.lang.ClassLoader.defineClassImpl(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:275)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    java.lang.ClassLoader.defineClassImpl(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:275)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    java.lang.J9VMInternals.verifyImpl(Native Method)
    java.lang.J9VMInternals.verify(J9VMInternals.java:72)
    java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
    com.ibm.websphere.naming.WsnInitialContextFactory.<clinit>(WsnInitialContextFactory.java:68)
    java.lang.J9VMInternals.initializeImpl(Native Method)
    java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    java.lang.Class.forNameImpl(Native Method)
    java.lang.Class.forName(Class.java:174)
    javax.naming.spi.NamingManager$3.run(NamingManager.java:873)
    javax.naming.spi.NamingManager$3.run(NamingManager.java:870)
    java.security.AccessController.doPrivileged(AccessController.java:228)
    javax.naming.spi.NamingManager.factoryForName(NamingManager.java:869)
    javax.naming.spi.NamingManager.factoryForName(NamingManager.java:820)
    javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:246)
    javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:318)
    javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:348)
    javax.naming.InitialContext.internalInit(InitialContext.java:286)
    javax.naming.InitialContext.<init>(InitialContext.java:211)
    com.paam.util.ServiceLocator.getInitialContext(ServiceLocator.java:43)
    com.paam.util.RemoteObjectCall.remoteObj(RemoteObjectCall.java:14)
    com.paam.delegates.PAAMDelegate.InsertPAAMDetails(PAAMDelegate.java:18)
    com.paam.controllers.NewPaamController.newpaamsubmit(NewPaamController.java:77)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:626)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:150)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:354)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:342)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:536)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

PS: I am not getting this Exception in my defined log. A localhost log file is generated in my tomcat logs dir. And the error is printed there.

If anyone has idea about what is the issue, kindly suggest a solution for the same.

Upvotes: 0

Views: 2387

Answers (4)

Toral
Toral

Reputation: 101

The problem is solved. I had been placing the thin client jars in my WEB-INF/lib folder instead of tomcat/lib. But after placing it in the tomcat/lib folder, I am not getting this error. Infact when placed in WEB-INF/lib, TOMCAT would not even start propery. Thank you everyone for the help..

Upvotes: 3

saagaravk
saagaravk

Reputation: 93

where is your initial context ??

Always It should be under source folder...

i.e. in classpath .

so do check it may be root cause for problem .

Upvotes: 0

Manglu
Manglu

Reputation: 11374

com.ibm.ws.exception.WsException is an IBM WebSphere class and it is not likely to be found in Tomcat's classpath.

If you are calling EJBs on WAS, you need to ensure that you have the required WAS Client Jars in your classpath for this to be successful. Have you done that?

Look at this thread: https://community.jboss.org/thread/198796?_sscc=t and see if any of htose responses help you.

Also as suggested by Neil, is it really required to have both Tomcat and WAS in your environment? Is there a possibility to host both the Web and EJB3 components on WAS which might make deployment easier for you!

HTH

Upvotes: 2

Neil Weightman
Neil Weightman

Reputation: 431

You can't run web components (JSPs and Servlets) on a web server. If you mean that you have one application server (sounds like you're using Tomcat) running your web application and another (WAS 8.0?) running the EJB and Spring components, then the first thing you should do is consider whether this is the best architecture. WebSphere Application Server can run all these components and you'll save some performance overhead by not having to do network communication between the bits of Java code, particularly if you use local EJB interfaces. Also, the programming will be simpler (since the JNDI service will be in the same server as the client code) and so will deployment (since everything can be packaged in one EAR and deployed in a single step).

If you have some particular reason for keeping the subdivided architecture you've described, you probably need to check the Information Center for details on which jar files are needed on the EJB client to enable communication with the EJB server. If the client and server aren't on the same machine, you'll also need to make sure that the URL for the JNDI service (beginning with "iiop:") correctly identifies the server machine and port number for the service.

Upvotes: 0

Related Questions