- 浏览: 180219 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (186)
- Ant (11)
- Axis2 (15)
- Car (9)
- Eclipse (1)
- Java (19)
- Java-EM (4)
- Javascript (11)
- Jsp (1)
- Hibernate (9)
- Mysql (1)
- Ms-Dos (5)
- Music (0)
- Oracle (3)
- Postgresql (0)
- Photoshop (1)
- Spring (17)
- Struts (8)
- Selenium (5)
- Ubuntu (13)
- News (17)
- Others (7)
- SSH (11)
- 算法 (5)
- FreeMarker (4)
- Tomcat (2)
- Linux (5)
最新评论
6, 修改配置文件spring-ws-servlet.xml.
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
- <property name="endpointMap">
- <map>
- <entry key=”{http://www.fuxueliang.com/ws/hello}HelloRequest” />
- <ref bean="helloEndpoint" />
- </entry>
- </map>
- </property>
- </bean>
- <bean id="hello" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition">
- <property name="wsdl" value="/WEB-INF/hello.wsdl"/>
- </bean>
- <bean id="helloEndpoint" class="org.rondy.ws.HelloEndPoint">
- <property name="helloService" ref="helloService" />
- </bean>
- <bean id="helloService" class="org.rondy.service.HelloServiceImpl" />
- </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> <property name="endpointMap"> <map> <entry key=”{http://www.fuxueliang.com/ws/hello}HelloRequest” /> <ref bean="helloEndpoint" /> </entry> </map> </property> </bean> <bean id="hello" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition"> <property name="wsdl" value="/WEB-INF/hello.wsdl"/> </bean> <bean id="helloEndpoint" class="org.rondy.ws.HelloEndPoint"> <property name="helloService" ref="helloService" /> </bean> <bean id="helloService" class="org.rondy.service.HelloServiceImpl" /> </beans>
注: 其中最主要的bean就是payloadMapping, 它定义了接收到的message与endpoint之间的mapping关系:将SOAP Body中包含的xml的根节点的QName为{http://www.fuxueliang.com/ws/hello}HelloRequest交给helloEndpoint处理.
SimpleWsdl11Definition这个bean则是定义了这个服务的wsdl, 访问地址是:http://localhost:8080/springws/hello.wsdl.
7, 客户端(saaj实现)的代码如下:
- /**
- *
- * @author Rondy.F
- *
- */
- public class HelloWebServiceClient {
- public static final String NAMESPACE_URI = "http://www.fuxueliang.com/ws/hello";
- public static final String PREFIX = "tns";
- private SOAPConnectionFactory connectionFactory;
- private MessageFactory messageFactory;
- private URL url;
- public HelloWebServiceClient(String url) throws SOAPException, MalformedURLException {
- connectionFactory = SOAPConnectionFactory.newInstance();
- messageFactory = MessageFactory.newInstance();
- this.url = new URL(url);
- }
- private SOAPMessage createHelloRequest() throws SOAPException {
- SOAPMessage message = messageFactory.createMessage();
- SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
- Name helloRequestName = envelope.createName("HelloRequest", PREFIX, NAMESPACE_URI);
- SOAPBodyElement helloRequestElement = message.getSOAPBody().addBodyElement(helloRequestName);
- helloRequestElement.setValue("Rondy.F");
- return message;
- }
- public void callWebService() throws SOAPException, IOException {
- SOAPMessage request = createHelloRequest();
- SOAPConnection connection = connectionFactory.createConnection();
- SOAPMessage response = connection.call(request, url);
- if (!response.getSOAPBody().hasFault()) {
- writeHelloResponse(response);
- } else {
- SOAPFault fault = response.getSOAPBody().getFault();
- System.err.println("Received SOAP Fault");
- System.err.println("SOAP Fault Code :" + fault.getFaultCode());
- System.err.println("SOAP Fault String :" + fault.getFaultString());
- }
- }
- @SuppressWarnings("unchecked")
- private void writeHelloResponse(SOAPMessage message) throws SOAPException {
- SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
- Name helloResponseName = envelope.createName("HelloResponse", PREFIX, NAMESPACE_URI);
- Iterator childElements = message.getSOAPBody().getChildElements(helloResponseName);
- SOAPBodyElement helloResponseElement = (SOAPBodyElement) childElements.next();
- String value = helloResponseElement.getTextContent();
- System.out.println("Hello Response [" + value + "]");
- }
- public static void main(String[] args) throws Exception {
- String url = "http://localhost:8080/springws";
- HelloWebServiceClient helloClient = new HelloWebServiceClient(url);
- helloClient.callWebService();
- }
- }
/** * * @author Rondy.F * */ public class HelloWebServiceClient { public static final String NAMESPACE_URI = "http://www.fuxueliang.com/ws/hello"; public static final String PREFIX = "tns"; private SOAPConnectionFactory connectionFactory; private MessageFactory messageFactory; private URL url; public HelloWebServiceClient(String url) throws SOAPException, MalformedURLException { connectionFactory = SOAPConnectionFactory.newInstance(); messageFactory = MessageFactory.newInstance(); this.url = new URL(url); } private SOAPMessage createHelloRequest() throws SOAPException { SOAPMessage message = messageFactory.createMessage(); SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); Name helloRequestName = envelope.createName("HelloRequest", PREFIX, NAMESPACE_URI); SOAPBodyElement helloRequestElement = message.getSOAPBody().addBodyElement(helloRequestName); helloRequestElement.setValue("Rondy.F"); return message; } public void callWebService() throws SOAPException, IOException { SOAPMessage request = createHelloRequest(); SOAPConnection connection = connectionFactory.createConnection(); SOAPMessage response = connection.call(request, url); if (!response.getSOAPBody().hasFault()) { writeHelloResponse(response); } else { SOAPFault fault = response.getSOAPBody().getFault(); System.err.println("Received SOAP Fault"); System.err.println("SOAP Fault Code :" + fault.getFaultCode()); System.err.println("SOAP Fault String :" + fault.getFaultString()); } } @SuppressWarnings("unchecked") private void writeHelloResponse(SOAPMessage message) throws SOAPException { SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); Name helloResponseName = envelope.createName("HelloResponse", PREFIX, NAMESPACE_URI); Iterator childElements = message.getSOAPBody().getChildElements(helloResponseName); SOAPBodyElement helloResponseElement = (SOAPBodyElement) childElements.next(); String value = helloResponseElement.getTextContent(); System.out.println("Hello Response [" + value + "]"); } public static void main(String[] args) throws Exception { String url = "http://localhost:8080/springws"; HelloWebServiceClient helloClient = new HelloWebServiceClient(url); helloClient.callWebService(); } }
几点看法:
1, 从上面代码可以看出, 比较麻烦的部分就是客户端和服务端对xml处理
发表评论
-
webservice之axis2方式开发总结
2008-11-04 09:33 723webservice之axis2方式开发总结 关键字: we ... -
基于Axis2开发WebService代码详解
2008-11-04 09:34 920基于Axis2开发WebService代码详解 关键字: we ... -
基于Tomcat5.0和Axis2开发Web Service应用实例
2008-11-04 09:38 768基于Tomcat5.0和Axis2开发Web Service应 ... -
使用Axis2来构建Web Service客户端
2008-11-04 09:46 767使用Axis2来构建Web Service客户端 2 ... -
webservice-之使用axis+spring开发
2008-11-04 17:42 635... -
webservice-之使用axis+spring开发2
2008-11-04 17:42 799三、配置文件 (全部放在 ... -
Axis 开发WebService
2008-11-04 18:16 747Axis 开发WebService Axis 开发WebSe ... -
spring与axis的整合
2008-11-04 18:23 692spring与axis的整合 eclipse resin ax ... -
在Eclipse中创建基于Axis2的web services
2008-11-05 09:04 1034本实验的目的是让你尽可能快的创建使用 Axis2 的服务和客户 ... -
Axis2快速上手指南
2008-11-05 09:06 726本指南的目的是让你尽可能快的创建使用Axis2的服务和客户端, ... -
Axis2快速上手指南2
2008-11-05 09:07 693创建服务 在这个部分,我们将看看根据StockQuoteSe ... -
Axis2快速上手指南4
2008-11-05 09:08 856使用ADB生成一个客户端 执行以下步骤来使用Axis Dat ... -
Axis2 Integration With The Spring Framework
2008-11-05 09:16 881Axis2 Integration With The Spri ... -
定义web service接口的十点注意事项
2008-11-05 14:03 1249一、接口是自说明的。 也就是说,接口的名字、参数和返回值在一看 ...
相关推荐
在"Spring Hello World"中,我们可能会创建一个`HelloWorld`类,该类依赖于Spring容器来获取并注入一个`MessageService`对象,这样就避免了硬编码依赖。 3. **控制反转(IoC)** 控制反转是DI的另一种表述,指的是...
在IT行业中,Spring框架是Java开发领域中极为重要的一个组件,尤其对于企业级应用来说,它的存在极大地...这个基础的例子为后续深入学习Spring的各种特性,如事务管理、AOP、数据访问、Web MVC等,打下了坚实的基础。
为了搭建基于Spring MVC框架和IntelliJ IDEA开发环境的Hello World项目,首先要掌握以下知识点: 1. **Spring MVC框架的理解**: - Spring MVC是Spring框架的一部分,用于构建Web应用程序。 - 它提供了一种MVC...
在本篇博客“Spring基础:稍显复杂的Spring Hello World”中,我们将深入探讨Spring框架的基础应用,特别是如何创建一个相对复杂的Spring HelloWorld示例。这个示例可能会涉及到依赖注入、配置文件、Bean的生命周期...
XFire是一个先进的Web Service框架,与Axis2并列为新一代的选择,因其简单API、对Web Service标准的支持以及与Spring的紧密集成而受到欢迎。 首先,构建这样的Web Service需要创建一个新的Web工程。在工程中,你...
这个简单的HelloWorld实例展示了Spring MVC和Hibernate的集成,以及如何进行基本的数据验证。 通过这个实例,你可以了解到如何将Spring MVC用于处理HTTP请求,使用Hibernate进行数据库操作,以及如何结合Spring的...
本文将深入探讨如何在Spring环境中利用JUnit进行"Hello, World!"的测试,同时也涉及到一些源码分析和测试工具的使用。 首先,我们需要理解Spring是如何管理bean的。Spring是一个依赖注入(Dependency Injection,DI...
通过这个"springmvc_helloWorld"项目,你可以学习到Spring MVC的基本架构、控制器的编写、视图的创建以及数据绑定等核心概念。这将为你后续深入学习Spring MVC框架以及开发复杂的Web应用奠定基础。
本篇文章将详细阐述如何使用XFire和Spring来构建一个Web Service的步骤。 首先,我们需要理解Web Service的基本概念。Web Service是一种基于互联网的、平台独立的交互方式,它允许不同系统之间通过XML进行数据交换...
标题 "spring mybatis helloworld" 暗示我们要探讨的是如何在Java环境下使用Spring和MyBatis框架构建一个基础的Hello World应用。Spring是一个全面的、模块化的应用程序框架,而MyBatis则是一个轻量级的持久层框架,...
本示例旨在介绍如何通过`@Component`注解实现一个简单的"HelloWorld"应用,这在Spring 3.1版本中就已经支持。下面我们将深入探讨`@Component`注解及其相关概念。 1. **什么是@Component注解** `@Component`是...
标题 "CXF 2.3 集成Spring3.0入门 HelloWorld" 指向的是一个关于如何在Java项目中使用Apache CXF 2.3版本与Spring 3.0框架进行集成的教程,特别是通过一个简单的"Hello World"应用来演示这个过程。Apache CXF是一个...
本文将通过"Spring的Hello World:理解IoC"这一主题,深入探讨Spring框架中的依赖注入(Dependency Injection,简称DI)概念,也被称为控制反转(Inversion of Control,简称IoC)。 首先,我们需要明白什么是IoC。...