- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
spring中WebService
定义服务契约:设计由Web服务处理的样本XML消息。我们将使用这些样本消息创建用于生成WSDL的XML Schema。数据契约:定义了进入和流出服务的消息。使用XML模式(XSD)定义。XSD允许我们精确地定义消息的内容。我们不仅能够定义消息中的元素,还可以指定这些消息的类型以及对消息中数据的限制。 ?(小提示:尽管手工编写XSD不是很困难,但是也需要我们做更多的工作,XSD interface工具可以基于内容检查一个或多个XML文件,生成可以验证XML文件的XML模式,见PPT 1 。虽然这样为我们节省了很多工作,但我们不能完全不做工作。这个XSD并不是很好,因为它会假设XML中的数据类型。大多数时候,这些假设没有问题,但是通常情况下,我们还是需要XSD能够更精确一点)?? 操作契约:定义了服务将要执行的操作。编写服务端点:创建类来接收和处理发向Web服务的消息。(消息端点是一个类,用于从客户端接收XML消息,根据消息的内容,调用内部应用程序对象执行实际的工作。Spring-WS定义了几个可以创建消息端点的抽象类。见PPT2)建立基于JDOM消息的端点序列化消息载荷:AbstractorMarshallingPayloadEndpoint与其他Spring-WS抽象端点类不同,它并不是从XML元素中抽取信息,而是通过处理对象获取信息(PPT 3)。见Spring in action P240程序清单9.3 你会发现它比EvaluateHandJDomEndpoint短得多。这是因为EvaluateHandMarshallingEndpoint没有任何在EvaluateHandJDomEndpoint中所必须的XML解析代码。在这里我们没有看到的是AbstractMarshallingPayloadEndpoint中有一个XML序列化器的引用。当接收到XML消息时,它会在调用invokeInternal()前使用这个序列化器将XML消息变成对象。 ????Spring-WS的大部分内容是对象-XML映射(OXM)抽象。Spring -WS的OXM提供了几个OXM实现: JAXB(版本1和版本2)、Castor XML、JiBX、XMLBeans、XStream好处:因为它使用了简单对象作为参数,所以可以像其他POJO一样进行单元测试。测试用例可以传递到EvaluateHandRequest对象中,并且做出返回EvaluateHandResponse的断言。配置端点和Spring-WS基础结构:将消息端点与可以将所有内容结合在一起的Spring-WS Bean装配起来。Spring-WS是基于Spring MVC的,在Spring MVC中,所有请求都由DispatcherServlet操作,这个Servlet会将请求分配给处理请求的控制器。类似的,Spring-WS会在前台使用MessageDispatcherServlet。它是DispatcherServlet的子类,用于将SOAP请求分配给Spring-WS端点。servlet ???????servlet-namespring-ws/servlet-name ??????????servlet-classorg.springframework.ws.transport.http.MessageDispatcherServlet/servlet-class ???????/servlet ???servlet-mapping ???????servlet-namespring-ws/servlet-name ???????url-pattern/*/url-pattern ???/servlet-mapping后面会对这个配置进行修改,暂且先作为我们研究Spring-WS的起点将消息映射到端点:MessageDispatcherServlet也使用了端点映射来决定由哪个端点接收输入的XML消息。对于扑克评分服务,我们将使用Spring-WS的PayloadRootQNameEndpointMapping,在Spring中配置如下:bean id=payloadMapping class=org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMappingproperty name=endpointMap ?map ????entry key={/poker/schemas}EvaluateHandRequest ?value-ref=evaluateHandEndpoint/ ?/map /propertyPayloadRootQNameEndpointMapping首先会检查消息载荷
原创力文档


文档评论(0)