首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始上下文Websphere 8.0

初始上下文Websphere 8.0
EN

Stack Overflow用户
提问于 2012-10-12 13:21:35
回答 4查看 2.3K关注 0票数 0

我正在使用EJB3.0Web和Spring3。我在Web服务器上部署了我的WAS8组件,并在应用服务器上部署了EAR。我的web组件工作得很好,直到它必须进行上下文查找。当我使用InitialContext时,我得到了以下异常:

代码语言:javascript
复制
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:我在我定义的日志中没有得到这个异常。在我的tomcat logs目录中会生成一个localhost日志文件。错误会在那里打印出来。

如果任何人有想法是什么问题,请提出解决方案。

EN

回答 4

Stack Overflow用户

发布于 2012-10-25 19:00:09

问题就解决了。我一直将瘦客户机jars放在WEB-INF/lib文件夹中,而不是tomcat/lib文件夹中。但是在把它放到tomcat/lib文件夹后,我没有得到这个错误。实际上,当放置在WEB-INF/lib中时,TOMCAT甚至不会启动propery。谢谢大家的帮助..

票数 3
EN

Stack Overflow用户

发布于 2012-10-14 18:33:18

Tomcat是一个IBMTomcat类,在WebSphere的类路径中不太可能找到它。

如果您在WAS上调用EJB,则需要确保您的类路径中有所需的WAS客户端Jars才能成功。你做过吗?

看看这个帖子:https://community.jboss.org/thread/198796?_sscc=t,看看htose的回复是否对你有帮助。

同样正如Neil所建议的,在您的环境中真的需要同时拥有Tomcat和WAS吗?有没有可能同时在WAS上托管Web和EJB3组件,这可能会使部署变得更容易!

HTH

票数 2
EN

Stack Overflow用户

发布于 2012-10-13 02:23:18

您不能在web服务器上运行web组件(JSP和Servlets)。如果您的意思是有一个应用程序服务器(听起来像是在使用Tomcat)运行您的web应用程序,而另一个应用程序服务器(是8.0?)运行EJB和Spring组件,那么您应该做的第一件事就是考虑这是否是最好的架构。EJB可以运行所有这些组件,通过不必在WebSphere代码之间进行网络通信,可以节省一些性能开销,特别是在使用本地EJB接口的情况下。此外,编程将更简单(因为JNDI服务将与客户端代码在同一服务器中),部署也将更简单(因为所有内容都可以打包到一个EAR中并在单个步骤中部署)。

如果您有某些特殊的原因需要保留您所描述的细分的体系结构,那么您可能需要查看信息中心,了解EJB客户端上需要哪些jar文件才能启用与EJB服务器的通信。如果客户机和服务器不在同一台机器上,您还需要确保JNDI服务的URL (以“iiop:”开头)正确地标识了服务器机器和服务的端口号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12852733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档