我有一个通过SOAP进行通信的客户端/服务器应用程序。服务器端应用程序是一个Java EE应用程序,它使用JAX-WS公开Web服务。我有一个servlet过滤器设置,可以在调用服务之前执行某些检查。
除异常处理外,这一切都运行良好。如果我从过滤器中抛出异常,它将作为通用服务器异常返回到客户端。我需要找到一种方法来传播包含特定消息的自定义异常,以便客户端可以向用户显示消息。
有什么见解?
答案 0 :(得分:7)
如果要在SOAP响应中发送异常,servlet过滤器实际上不是正确的工具,我会考虑使用JAX-WS处理程序来验证传入消息(JAX-WS处理程序在某种程度上是JAX -WS服务过滤器对Servlet的作用)。
Frmo Working with Headers in JAX-WS SOAPHandlers:
JAX-WS Handlers
除了支持网络 服务开发,JAX-WS 框架(最新的Java编程 用于创建基于SOAP的语言API Web服务和Web服务 消费者)还提供处理程序 框架。处理程序提供了一种手段 检查和操纵传入或 传出的SOAP消息(两者都有) 客户端以及服务器端)。他们 充当强大的消息拦截器 可以执行一系列功能 如消息转换, 内容过滤,跟踪等 事实上,经常使用处理程序 用于实现Web的运行时环境 服务和SOAP规范等 作为WS-Security,WS-ReliableMessaging, JAX-WS处理程序类似于 EJB拦截器或servlet过滤器。 处理程序,如拦截器和 过滤器,鼓励开发人员 遵循责任链 图案。