Reasons For Unexpected Subelement Exception In Axis2 Data Binding(ADB)

WSDL2Java which comes with Apache Axis2 is tool that most of us use to generate web service clients and services giving WSDL as an input. If you have ever used WSDL2Java in your own projects you must came across this kind of exception at least once. Until you come up with a perfect WSDL and service implementation, you’ll have to fix this kind of errors.

Solving these type of issues is a pain, because it’s related to code generation and there may be hundreds of generated Java classes. I have came across this error several times due to issues of XML schemas and service implementation errors(implementation is not compliance with the XML schema). So here are some reasons for unexpected subelement exceptions. This will help you to minimize your debug time.

1. You have XML schema ‘any’ in between sequence like following.When the code is generated using WSDL2Java ProcessInfoType’s inner Factory class’s parse method will generate code that process XML schema ‘any’ after the ‘version’ element. When parse method ‘any’ processing is over the XML reader is at the end of the sequence, so instead of ‘status’ element it’ll find ‘ProcessInfo’ element. So it’s better to double check whther you have XML schema ‘any’ element in between elements of a sequence. The correct way is to put ‘any’ at the last.


If you encounter above kind of situations while developing components for WSO2 Carbon platform, the best way to monitor the SOAP messages is using SOAP Tracer comes with most of the Carbon based products. This will help you to compare what implementation returns and what XML schema defines. If you are using Axis2 you can use TCP Monitor to monitor your SOAP communication between client and server.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值