在JFinal里使用Axis2报错:java.lang.ClassNotFoundException: org.apache.axiom.om.OMContainer
一个很奇葩的问题:
在JFinal里使用Axis2调用第三方的webservice,在Eclipse里通过DemoConfig.java启动服务(即在Jetty容器下)是可以正常运行的。但是我一旦把工程单独发布到Tomcat下或Jetty下,启动就会报 java.lang.ClassNotFoundException: org.apache.axiom.om.OMContainer 错误。但是检查了这个class所在的axiom-api-1.2.10.jar是在工程类库里的。
求助~~ @JFinal
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这个检查了,确实存在的。
而且也google了一些文献,居然找不到了答案~~郁闷的紧
回复
如果类文件确实存在,可能是没生效,检查一下类路径
axiom-api-1.2.10.jar 用 winrar 打开,看一下 org.apache.axiom.om.OMContainer.class 是否真的存在
根据java web 规范在正式部署的时候容器只会去lib下加载jar包,而你之所以在开发环境下程序可以使用是因为eclipse 可以在项目属性的Java bulid path 配置的 Libraries 标签页额外配置 jar 包依赖
回复
weblogic没这个问题,我以前都是在用weblogic用习惯了~~又学习了!
@JFinal 问题解决了。我的axis2的相关jar包是放在/WEB-INF/lib/axis2目录下的,就刚刚,我灵机一动把axis2的jar包直接放到 WEB-INF/lib下,居然问题就解决了。在Tomcat下运行OK,Jetty还没测试。难道jar包必须直接放在lib目录下?至少我以前使用Weblogic的时候是没有这个限制的。
PS:为这个问题纠结了好几天,居然就这么解决了,我也是醉了~~