【发布时间】:2015-11-03 12:59:10
【问题描述】:
我读过一些关于soap处理程序的教程,其中一些只使用处理程序链,但其中一些同时使用@resource注释和处理程序链xml。我很困惑是否需要使用@resource。如果是,为什么我需要使用它?
【问题讨论】:
标签: web-services annotations jax-ws soapheader soaphandler
我读过一些关于soap处理程序的教程,其中一些只使用处理程序链,但其中一些同时使用@resource注释和处理程序链xml。我很困惑是否需要使用@resource。如果是,为什么我需要使用它?
【问题讨论】:
标签: web-services annotations jax-ws soapheader soaphandler
@Resource 注释标记应用程序需要的资源。该注解可以应用于应用程序组件类,或组件类的字段或方法。当注解应用于字段或方法时,容器将在组件初始化时将所请求资源的实例注入到应用程序组件中。如果注解应用于组件类,则注解声明应用程序将在运行时查找的资源。
使用@Resource注解注入的WebServiceContext对象,包裹了包含SOAPMessage的MessageContext,还包含了承载SOAPMessage的HTTP连接的各种信息。然后,只要服务请求到达,Web 容器就会初始化 WebServiceContext 引用。这允许 Web 方法访问承载请求的 HTTP 请求中的 HTTP 标头,以及 SOAPMessageContext、SOAP 标头和 SOAPMessage。
为什么在一种情况下使用@Resource 注释而在另一种情况下不使用?因为在一种情况下,可以从这些类(SOAPMessageContext、SOAPMessage 等)的对象中检索所有必要的信息,并且这些对象可通过实现 LogicalHandler 接口或SOAPMessageContext 接口获得。在其他情况下,可以直接从注入的WebServiceContext 检索所有必要的信息。
另见:
【讨论】: