技术开发 频道

如何处理Web服务异常

【IT168 技术文章】

    异常是一个事件,它出现在程序执行过程当中,会中断程序指令的正常流程。如果一种方法或者一项Web服务操作出现错误,就会出现异常。引起错误的可能是程序缺陷或者缺少系统资源。典型的问题包括如下:用户输入错误:用户无意中输入了不正确的字符; 物理限制:磁盘空间已满或者溢出可用内存;设备错误:硬件不能正常工作,如无法启用的USB移动硬盘;网络错误:应用服务器试图使用Java数据库连接性(JDC)连接到远程数据库。

    要是被调用方法即提供者出现错误,就必须通知调用程序即使用者。这时,通过编程实现的复杂的异常处理就可以发挥作用:异常出现在调用程序面前,以便从异常中恢复过来。高明的编程人员通常会预料到异常,然后通过编写程序来处理它们;不过,不是所有异常都是能预料到的,也不是所有异常都是能够恢复的。要是没发现异常处理程序,运行系统就会终止、出现不可靠的动作。

    Java和.Net等编程接口拥有一系列广泛、复杂的异常处理功能。开发人员可以使用if-then-else条件结构和try-catch-finally代码块来构建一组丰富的错误处理模式。使用这样一些异常处理模式,开发人员就可以降低程序严重崩溃或者程序突然终止的风险,并且为应用程序添加可靠性。

    在基于Web服务的分布式架构里面,异常处理必须满足额外需求。如今,异常必须能独立于操作系统、编程语言和应用程序进行传送。异常必须提供给使用者,那样它们就随时可以解释; 如果某异常能够恢复,使用者就可以无缝应答Web服务提供者抛出的异常,提供者可能在企业IT部门的里面,也可能在外面。在传送这种异常时,还要关注企业安全。如果异常处理不严格、不认真、不慎重,提供者的Web服务就有可能把内部IT资产的详细信息透露给使用者,或者在堆栈跟踪中泄漏敏感的企业信息。

    为了探讨Web服务的异常处理,本文构建了一个简单的Java类,使用众多的类似方法对两个数进行除法运算。这些方法处理异常的能力各不相同,有的方法完全缺少异常处理机制,而有的方法对许多异常场景拥有显式异常处理结构。如图1所示,我们使用以下组件来准备异常处理测试:

    1.BEA WebLogic Portal 9.2是面向基于Java应用开发的一款应用服务器。安装程序包括BEA Workshop for WebLogic Platform,这是用于迅速构建Web服务的一种IDE。我们决定使用WebLogic,因为它在业界的应用很广泛,而且易于构建Web服务。

    2.Crosscheck Networks SOAPSonar是一个Web服务测试客户程序,它使用WSDL,并且可以为目标Web服务生成功能、性能、互操作性和漏洞等测试。

0
相关文章