`

Spring Web Service 学习之Hello World篇2

阅读更多

6, 修改配置文件spring-ws-servlet.xml.

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"   
  3.      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  5.   
  6.      <bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">  
  7.          <property name="endpointMap">  
  8.              <map>  
  9.                  <entry key=”{http://www.fuxueliang.com/ws/hello}HelloRequest” />        
  10.                      <ref bean="helloEndpoint" />  
  11.                  </entry>  
  12.              </map>  
  13.          </property>  
  14.      </bean>  
  15.      <bean id="hello" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition">  
  16.          <property name="wsdl" value="/WEB-INF/hello.wsdl"/>  
  17.      </bean>  
  18.      <bean id="helloEndpoint" class="org.rondy.ws.HelloEndPoint">  
  19.          <property name="helloService" ref="helloService" />  
  20.      </bean>  
  21.      <bean id="helloService" class="org.rondy.service.HelloServiceImpl" />  
  22. </beans>  

: 其中最主要的bean就是payloadMapping, 它定义了接收到的messageendpoint之间的mapping关系:SOAP Body中包含的xml的根节点的QName{http://www.fuxueliang.com/ws/hello}HelloRequest交给helloEndpoint处理.
SimpleWsdl11Definition这个bean则是定义了这个服务的wsdl, 访问地址是:http://localhost:8080/springws/hello.wsdl.

7, 客户端(saaj实现)的代码如下:

Java代码 复制代码
  1. /**
  2. *
  3. * @author Rondy.F
  4. *
  5. */  
  6. public class HelloWebServiceClient {  
  7.   
  8.     public static final String NAMESPACE_URI = "http://www.fuxueliang.com/ws/hello";  
  9.   
  10.     public static final String PREFIX = "tns";  
  11.   
  12.     private SOAPConnectionFactory connectionFactory;  
  13.   
  14.     private MessageFactory messageFactory;  
  15.   
  16.     private URL url;  
  17.   
  18.     public HelloWebServiceClient(String url) throws SOAPException, MalformedURLException {  
  19.          connectionFactory = SOAPConnectionFactory.newInstance();  
  20.          messageFactory = MessageFactory.newInstance();  
  21.         this.url = new URL(url);  
  22.      }  
  23.   
  24.     private SOAPMessage createHelloRequest() throws SOAPException {  
  25.          SOAPMessage message = messageFactory.createMessage();  
  26.          SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();  
  27.          Name helloRequestName = envelope.createName("HelloRequest", PREFIX, NAMESPACE_URI);  
  28.          SOAPBodyElement helloRequestElement = message.getSOAPBody().addBodyElement(helloRequestName);  
  29.          helloRequestElement.setValue("Rondy.F");  
  30.         return message;  
  31.      }  
  32.   
  33.     public void callWebService() throws SOAPException, IOException {  
  34.          SOAPMessage request = createHelloRequest();  
  35.          SOAPConnection connection = connectionFactory.createConnection();  
  36.          SOAPMessage response = connection.call(request, url);  
  37.         if (!response.getSOAPBody().hasFault()) {  
  38.              writeHelloResponse(response);  
  39.          } else {  
  40.              SOAPFault fault = response.getSOAPBody().getFault();  
  41.              System.err.println("Received SOAP Fault");  
  42.              System.err.println("SOAP Fault Code :" + fault.getFaultCode());  
  43.              System.err.println("SOAP Fault String :" + fault.getFaultString());  
  44.          }  
  45.      }  
  46.   
  47.     @SuppressWarnings("unchecked")  
  48.     private void writeHelloResponse(SOAPMessage message) throws SOAPException {  
  49.          SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();  
  50.          Name helloResponseName = envelope.createName("HelloResponse", PREFIX, NAMESPACE_URI);  
  51.          Iterator childElements = message.getSOAPBody().getChildElements(helloResponseName);  
  52.          SOAPBodyElement helloResponseElement = (SOAPBodyElement) childElements.next();  
  53.          String value = helloResponseElement.getTextContent();  
  54.          System.out.println("Hello Response [" + value + "]");  
  55.      }  
  56.   
  57.     public static void main(String[] args) throws Exception {  
  58.          String url = "http://localhost:8080/springws";  
  59.          HelloWebServiceClient helloClient = new HelloWebServiceClient(url);  
  60.          helloClient.callWebService();  
  61.      }  
  62. }  

几点看法:

1, 从上面代码可以看出, 比较麻烦的部分就是客户端和服务端对xml处理

分享到:
评论

相关推荐

    Spring Hello World _WEB

    在"Spring Hello World"中,我们可能会创建一个`HelloWorld`类,该类依赖于Spring容器来获取并注入一个`MessageService`对象,这样就避免了硬编码依赖。 3. **控制反转(IoC)** 控制反转是DI的另一种表述,指的是...

    spring helloworld 例子

    在IT行业中,Spring框架是Java开发领域中极为重要的一个组件,尤其对于企业级应用来说,它的存在极大地...这个基础的例子为后续深入学习Spring的各种特性,如事务管理、AOP、数据访问、Web MVC等,打下了坚实的基础。

    spring mvc 在 intellij 的 helloworld 基本配置

    为了搭建基于Spring MVC框架和IntelliJ IDEA开发环境的Hello World项目,首先要掌握以下知识点: 1. **Spring MVC框架的理解**: - Spring MVC是Spring框架的一部分,用于构建Web应用程序。 - 它提供了一种MVC...

    Spring基础:稍显复杂的Spring Hello World

    在本篇博客“Spring基础:稍显复杂的Spring Hello World”中,我们将深入探讨Spring框架的基础应用,特别是如何创建一个相对复杂的Spring HelloWorld示例。这个示例可能会涉及到依赖注入、配置文件、Bean的生命周期...

    使用XFire+Spring构建Web Service

    XFire是一个先进的Web Service框架,与Axis2并列为新一代的选择,因其简单API、对Web Service标准的支持以及与Spring的紧密集成而受到欢迎。 首先,构建这样的Web Service需要创建一个新的Web工程。在工程中,你...

    Spring MVC+hibernate helloworld

    这个简单的HelloWorld实例展示了Spring MVC和Hibernate的集成,以及如何进行基本的数据验证。 通过这个实例,你可以了解到如何将Spring MVC用于处理HTTP请求,使用Hibernate进行数据库操作,以及如何结合Spring的...

    spring的Junit测试-helloworld

    本文将深入探讨如何在Spring环境中利用JUnit进行"Hello, World!"的测试,同时也涉及到一些源码分析和测试工具的使用。 首先,我们需要理解Spring是如何管理bean的。Spring是一个依赖注入(Dependency Injection,DI...

    springmvc_helloWorld

    通过这个"springmvc_helloWorld"项目,你可以学习到Spring MVC的基本架构、控制器的编写、视图的创建以及数据绑定等核心概念。这将为你后续深入学习Spring MVC框架以及开发复杂的Web应用奠定基础。

    使用XFire+Spring构建Web Service步骤

    本篇文章将详细阐述如何使用XFire和Spring来构建一个Web Service的步骤。 首先,我们需要理解Web Service的基本概念。Web Service是一种基于互联网的、平台独立的交互方式,它允许不同系统之间通过XML进行数据交换...

    spring mybatis helloworld

    标题 "spring mybatis helloworld" 暗示我们要探讨的是如何在Java环境下使用Spring和MyBatis框架构建一个基础的Hello World应用。Spring是一个全面的、模块化的应用程序框架,而MyBatis则是一个轻量级的持久层框架,...

    @Commponent注解HelloWorld示例

    本示例旨在介绍如何通过`@Component`注解实现一个简单的"HelloWorld"应用,这在Spring 3.1版本中就已经支持。下面我们将深入探讨`@Component`注解及其相关概念。 1. **什么是@Component注解** `@Component`是...

    CXF 2.3 集成Spring3.0入门 HelloWorld

    标题 "CXF 2.3 集成Spring3.0入门 HelloWorld" 指向的是一个关于如何在Java项目中使用Apache CXF 2.3版本与Spring 3.0框架进行集成的教程,特别是通过一个简单的"Hello World"应用来演示这个过程。Apache CXF是一个...

    Spring的Hello World:理解IoC

    本文将通过"Spring的Hello World:理解IoC"这一主题,深入探讨Spring框架中的依赖注入(Dependency Injection,简称DI)概念,也被称为控制反转(Inversion of Control,简称IoC)。 首先,我们需要明白什么是IoC。...

Global site tag (gtag.js) - Google Analytics