[求助]部署在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环境变量都没有解决
...全文
121 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

当然我的分析也许是误导,请发表您的看法,大家相互提高吧
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

67,535

社区成员

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

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