[求助]部署在jboss3.2.5上的应用通过Axis调用Web Service总是报错

chexw 2005-02-28 10:11:09
exception

javax.servlet.ServletException: Servlet execution threw an exception


root cause

java.lang.NoClassDefFoundError: tservice1/MyServiceSoapBindingStub
tservice2.TUtil.getData(TUtil.java:15)
tservice2.TestService.doGet(TestService.java:21)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

说明:
1.tservice1.MyService为提供服务一方,仅有一个方法getData,并可通过JBuilder2005生成的TestCase成功调用.
2.tservice2.TestService类为一个servlet,它调用TUtil.getData方法.
3.TUtil.getData方法中的代码来自自动生成的TestCase,因此程序本身应该没有错误。
4.这些由axis自动生成的类的class文件都位于war包中

错误原因应该是类的装载问题。我尝试多次,如将Axis的两个包jaxrpc.jar和saaj.jar放在jbossweb-tomcat50.sar下,或放入自已的war包中,或加入jboss启动的classpath,或者加入系统的classpath环境变量都没有解决
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chexw 2005-03-01
  • 打赏
  • 举报
回复
我直接调用axis的类,可以实现相同的功能。
但为什么调用自动生成的这些类就会出错呢?
lhj 2005-02-28
  • 打赏
  • 举报
回复
提示的是tservice1/MyServiceSoapBindingStub 这个类没有找到,应该是没有正确部署自动生成的代码。
chexw 2005-02-28
  • 打赏
  • 举报
回复
在调用方的tservice1.*都是自动生成的代码,并且tservice1.*.class和tservice2.*.class都在ws2.war\WEB-INF\class下
TUtil的getData方法如下:
...
tservice1.MyServiceSoapBindingStub binding;
try {
tservice1.MyServiceServiceLocator locator =new tservice1.MyServiceServiceLocator();
binding = (tservice1.MyServiceSoapBindingStub)locator.getMyService();//出错了!
value = binding.getData(name);
}
catch (Exception e) {
e.printStackTrace();
}
...
现在能找到tservice1.MyServiceServiceLocator,而找不到tservice1.MyServiceSoapBindingStub,应该不是这个原因。

public class MyServiceSoapBindingStub extends org.apache.axis.client.Stub implements tservice1.MyService
我的分析是由于org.apache.axis.client.Stub引用了一些位于jaxrpc.jar和saaj.jar中java.*和javax.*的类,而这些类的装载过程有一些特殊,从而导致无法装载org.apache.axis.client.Stub,表现为找不到MyServiceSoapBindingStub

当然我的分析也许是误导,请发表您的看法,大家相互提高吧
目 录 1 文档介绍.......................................................................................................................................3 1.1 文档概述.............................................................................................................................3 1.2 适用范围.............................................................................................................................3 2 环境描述.......................................................................................................................................3 3 配置 EOS的 WebService服务....................................................................................................3 3.1 配置 WebService 声明.......................................................................................................3 3.1.1 WebLogic8.x环境.....................................................................................................3 3.1.2 JBoss 环境.................................................................................................................4 3.1.3 WebSphere5.x 环境...................................................................................................4 3.2 加入 axis 的 jar包到 CLASSPATH...................................................................................4 3.2.1 WebLogic8.x环境.....................................................................................................4 3.2.2 JBoss 环境.................................................................................................................5 3.2.3 WebSphere5.x 环境...................................................................................................5 3.3 设置调用 WebService 的验证码........................................................................................5 4 验证 EOS的 WebService服务....................................................................................................6 5 如何通过 EOS的 WebService 服务来调用业务逻辑................................................................6 5.1 传统 JAVA 方式.................................................................................................................6 5.1.1 调用方式及说明........................................................................................................6 5.1.2 例子...........................................................................................................................7 5.2 使用 EOS提供的 bizlet 调用方式..................................................................................11 5.2.1 调用方式及说明......................................................................................................11 5.2.2 例子.........................................................................................................................12 5.3 使用 VB 调用方式...........................................................................................................12 5.3.1 例子.........................................................................................................................12 5.4 使用 VC 调用方式...........................................................................................................13 5.4.1 例子.........................................................................................................................13 5.5 使用 delphi调用方式.......................................................................................................15 5.5.1 例子.........................................................................................................................15 附录 1: axis 的 jar包..................................................................................................................16 6 支持............................................................................................................................................18

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧