CXF开发WebService服务器端
开发工具准备:
1.apache-cxf-2.2.6.zip
2.spring-ws-1.5.8.zip
3.eclipse-jee-galileo-SR1-win32
开发步骤:
一、新建一个Dynamic Web Project工程。名字叫WebservicesTest
二、将apache-cxf-2.2.6 及 spring-ws-1.5.8 下的jar包拷贝到 WebservicesTest 工程的lib文件夹内
三、建立entity包,并新建MyObject.java,内容如下:
package entity;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MyObject", propOrder = {
"id",
"name"
})
public class MyObject {
private int id;
private String name;
get set方法,自己生成
}
请注意@XmlType内定义的field必须与类的field一一对应,否则服务器在启动时会报错!这一规则就说明,用于webservice使用的类最好不要与业务bean关系太密切。否则,一旦业务变化,就要花费精力思考是否会影响到webservice。
四、新建demo.spring包,并新建接口HelloWorld.java。内容如下:
package demo.spring;
import javax.jws.WebParam;
import javax.jws.WebService;
import entity.MyObject;
@WebService
public interface HelloWorld {
String stringInt(
@WebParam(name = "text", targetNamespace = "http://spring.demo/") String text,
@WebParam(name = "num", targetNamespace = "http://spring.demo/") int num);
MyObject[] aryMyObjects(
@WebParam(name = "myObjects", targetNamespace = "http://spring.demo/") MyObject[] myObjects);
}
请注意:@WebService是必须的;@WebParam不是必须的。如果没有@WebParam的描述,在wsdl文件内描述的方法中,参数名将变为arg0,arg1…以此类推.
另外,请留意aryMyObjects方法的返回值类型是数组。将来利用cxf自带的wsdl2java.bat命令生成的接口,返回值类型将是List<MyObject>
五、新建demo.spring.impl包,并接建HelloWorld的实现类HelloWorldImpl,内容如下:
package demo.spring.impl;
import javax.jws.WebService;
import entity.MyObject;
@WebService(endpointInterface = "demo.spring.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
public String stringInt(String text, int num) {
System.out.print("stringInt called");
return text+" "+num;
}
public MyObject[] aryMyObjects(MyObject[] myObjects) {
MyObject[] ary=new MyObject[myObjects.length];
for(int i=0;i<ary.length;i++){
ary[i]=new MyObject();
ary[i].setId(myObjects[i].getId()+i);
ary[i].setName(myObjects[i].getName()+" "+i);
}
return ary;
}
}
请注意:@WebService是必须的
六、web.xml的内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/beans.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
</web-app>
七、与web.xml同一文件夹内新建beans.xml,内容如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<bean id="hello" class="demo.spring.impl.HelloWorldImpl" />
<jaxws:endpoint id="helloWorld" implementor="#hello" address="/HelloWorld" />
</beans>
至此,CXF开发服务器端已经完成,可以在浏览器内输入
http://localhost:8080/WebService_CXF_Host/service/HelloWorld?wsdl查看发报的方法
相关推荐
### CXF 开发 WebService 服务端详解 #### 一、引言 随着企业级应用对服务化的不断追求,Web Service 成为了实现不同系统间通信的重要手段之一。Apache CXF 是一个高性能、易于使用的框架,它支持多种协议,如SOAP...
【标题】:“CXF开发Web服务端” 在Java世界中,Apache CXF是一个流行的开源框架,用于构建和部署Web服务。它支持多种Web服务规范,包括SOAP、RESTful API以及WS-*扩展。CXF允许开发者以Java SE或Java EE环境轻松...
在本讨论中,我们将深入探讨“cxf服务端开发jar包”的相关知识点。 一、CXF服务端开发概述 1. 服务端开发:在CXF框架中,服务端开发主要涉及创建Web服务接口、实现这些接口以及发布服务。通过使用CXF,开发者可以...
### CXF服务端WSDL发布及代码生成详解 #### 一、概述 在现代软件开发中,特别是企业级应用开发领域,Web服务扮演着至关重要的角色。CXF(Camel and XFire)作为Apache下的一个开源项目,为开发高质量的Web服务提供...
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
在这个“cxf简单实例 服务端与客户端”中,我们将探讨如何使用CXF来创建服务端和客户端应用。 服务端开发是Web服务的核心部分。在CXF中,服务端通常通过以下步骤建立: 1. 定义服务接口:首先,我们需要定义一个...
CXF不仅简化了Web服务的开发,而且允许开发者无缝地在客户端和服务端之间切换,从而实现双向通信。 **1. CXF入门** 对于初学者,了解CXF的基本概念是至关重要的。CXF基于JAX-WS(Java API for XML Web Services)...
【CXF开发的服务端及客户端】是一个基于Apache CXF和Spring框架构建的项目,主要功能是实现文件的上传和下载,以及支持视频音频的传输。这个项目为学习者提供了实战经验,帮助理解如何在实际应用中运用CXF作为服务端...
CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,主要用于构建和开发Web服务。它支持多种Web服务标准,如SOAP、RESTful API、WS-*规范等,使得开发者能够轻松地创建服务端和客户端应用...
学习CXF开发Web服务时,可以按照以下步骤进行实践: 1. 创建服务接口和实现。 2. 编写Spring配置文件,配置CXF服务器。 3. 打包并部署到应用服务器。 4. 使用wsdl2java生成客户端代码。 5. 编写客户端程序,调用Web...
【CXF服务端程序】是基于Apache CXF框架构建的一个简单Web服务应用,它使得开发者能够轻松地创建和消费Web服务。Apache CXF是一个开源的Java框架,它提供了丰富的功能来支持SOAP、RESTful以及WS-*协议栈。通过CXF,...
本项目“Cxf+webservice(客服端和服务端)”提供了一个简洁的示例,展示了如何使用Apache CXF来实现Web Service的基本功能。下面我们将详细讲解CXF和Web Service的相关知识点,以及如何使用它们来创建和调用服务。 1...
在Java开发中,CXF和Axis是两种广泛使用的Web服务框架。CXF主要用来创建和消费SOAP和RESTful Web服务,而Axis则是Apache组织早期推出的一款Web服务框架,主要用于SOAP服务。本文将深入探讨如何使用CXF客户端调用Axis...
【标题】:“CXF服务端搭建” 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和服务消费Web服务。本教程将详细介绍如何搭建一个CXF服务端,以实现基于SOAP或...祝你在CXF服务端开发的道路上一帆风顺!
CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)中的Web服务。CXF允许开发者以多种方式创建服务和客户端,包括JAX-WS(Java API for XML Web ...
要使用CXF开发Web服务,我们需要遵循以下步骤: 1. **环境准备**:确保已经安装了Java Development Kit (JDK) 和 Apache Maven 或者Gradle作为构建工具。CXF通常通过Maven依赖管理,所以在pom.xml文件中添加相应的...
Webservice接口,Cxf写的服务端, 是web项目,必须tomcat部署. 开发环境:32位jdk1.7+Cxf3.1.4+tomcat7, 开发工具:myeclipse8.5. 浏览器、客户端均可访问,测试通过。
在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而CXF和Spring框架的结合则为开发高质量的Web服务提供了强大的支持。本实例将详细阐述如何利用CXF和Spring来构建Web服务的客户端和服务端。 一、CXF简介...
Web Service、CXF跨平台和跨语言的通信