本节深刻分析JWS服务层怎样和传输层进行交互,重点就在Handler中访问的MessageContext类型:其中子类SOAPMessageContext和LogicalMessageContext是两个参数类型,好比在SOAP Handler和Logical Handler中各自的handleMessage回调方法。java
在当下比较流行的编程语言系统中,“上下文”(context)是一个很常见的定义,包括 java 语言。Servlet拥有一个ServletContext上下文类型,EJB拥有一个EJBContext上下文类型,web服务拥有一个WebServiceContext上下文类型。从架构的角度理解,上下文就是可以访问它底层容器的一类对象。容器为这类对象提供底层支持。从编程角度理解,一个上下文多是一个Map<String,Object>,一个键为字符串,值为任意对象的集合。web
而在带有@WebService(SEI 或 SIB)注解的应用程序级别,一般将底层的MessageContext认为是基础设施中透明不可见的部分。在Handler层面,MessageContext做为回调方法的参数暴露出来,这样一个SOAP Handler或一个Logical Handler能够各自访问SOAP消息和这些消息所包括的单元。这一节咱们将了解不是很常见的状况,就是在Handler以外访问MessageContext类型;也就是说,在应用程序的核心组件中,服务实现Bean(SIB)和它的客户端。编程
在一个Handler或SIB中,Java经过MessageContext对象提供了对HTTP消息的访问。在基于Java的客户端中,Java也一样地提供了对HTTP协议层的访问支持,不过它是经过BindingProvider对象和该对象实例以属性方式表现出来的请求/响应上下文。架构
实例演示(见后续的blog)......
编程语言