`

CXF_3

 
阅读更多

服务端代码:

WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	
	<!-- 通过上下文参数指定spring配置文件的位置 -->
	<!-- 以下配置服务启动时就加载配置文件,调用服务时无需重新加载  -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:cxf-servlet.xml</param-value>
	</context-param>
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
	
	<!-- 配置CXF的核心Servlet -->
	<servlet>
		<servlet-name>cxf</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
		<!-- 通过初始化参数指定cxf配置文件的位置 -->
		<!-- 以下不注释则调用服务时会重新加载 -->
		<!-- 
		<init-param>
			<param-name>config-location</param-name>
			<param-value>classpath:cxf-servlet.xml</param-value>
		</init-param>
		 -->
	</servlet>
	<servlet-mapping>
		<servlet-name>cxf</servlet-name>
		<url-pattern>/cxf/*</url-pattern>
	</servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 /CXF_3/src/cxf-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" xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
          	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
            http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">
	<!-- 引入CXF Bean定义如下,早期的版本中使用 -->
	<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" />
	
	<!-- 第一种发布方式:简单发布(没有接口的发布) -->
	<!-- id:唯一标示  implementor:提供服务的类 address:服务的请求url-->
	<jaxws:endpoint id="helloService" implementor="cn.itcast.cxf.HelloService" address="/hello">
		<!-- 加入请求的消息拦截器 -->
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
		</jaxws:inInterceptors>
		<!-- 加入响应的消息拦截器 -->
		<jaxws:outInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
		</jaxws:outInterceptors>
	</jaxws:endpoint>
	
	<!-- 第二种发布方式:带有接口的发布 -->
	<!-- id:唯一标示 serviceClass:接口类型 address:服务的请求url-->
	<jaxws:server id="hiService" serviceClass="cn.itcast.cxf.IHiService" address="/hi">
		<jaxws:serviceBean>
			<!-- 服务的实现类 -->
			<bean class="cn.itcast.cxf.HiServiceImpl"></bean>
		</jaxws:serviceBean>
		<!-- 加入请求的消息拦截器 -->
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
		</jaxws:inInterceptors>
		<!-- 加入响应的消息拦截器 -->
		<jaxws:outInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
		</jaxws:outInterceptors>
	</jaxws:server>
	
	<jaxws:server id="personService" serviceClass="cn.itcast.cxf.service.IPersonService" address="/person">
		<jaxws:serviceBean>
			<!-- 服务的实现类 -->
			<bean class="cn.itcast.cxf.service.PersonServiceImpl"></bean>
		</jaxws:serviceBean>
		<!-- 加入请求的消息拦截器 -->
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
		</jaxws:inInterceptors>
		<!-- 加入响应的消息拦截器 -->
		<jaxws:outInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
		</jaxws:outInterceptors>
	</jaxws:server>
</beans>

 /CXF_3/src/cn/itcast/cxf/domain/Person.java

package cn.itcast.cxf.domain;

public class Person {

	private String id;
	private String name;
	private String address;
	/**
	 * @return the id
	 */
	public final String getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public final void setId(String id) {
		this.id = id;
	}
	/**
	 * @return the name
	 */
	public final String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public final void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the address
	 */
	public final String getAddress() {
		return address;
	}
	/**
	 * @param address the address to set
	 */
	public final void setAddress(String address) {
		this.address = address;
	}
}

 /CXF_3/src/cn/itcast/cxf/service/IPersonService.java

package cn.itcast.cxf.service;

import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;

import cn.itcast.cxf.domain.Person;

@WebService
@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)
public interface IPersonService {

	public Person findPersonById(String id);
}

 /CXF_3/src/cn/itcast/cxf/service/PersonServiceImpl.java

package cn.itcast.cxf.service;

import cn.itcast.cxf.domain.Person;

public class PersonServiceImpl implements IPersonService {

	public Person findPersonById(String id) {
		System.out.println("findPersonById()...");
		Person p = new Person();
		p.setId(id);
		p.setAddress("aa");
		p.setName("jack");
		return p;
	}

}

 ---------------------------客户端代码------------------------------------------------------

/CXF_3_client/src/cn/itcast/cxf/service/App.java

package cn.itcast.cxf.service;

public class App {

	/**
	 * wsimport -s . http://localhost:8080/CXF_3/cxf/person?wsdl
	 */
	public static void main(String[] args) {
		IPersonServiceService ss = new IPersonServiceService();
		IPersonService is = ss.getIPersonServicePort();
		Person p = is.findPersonById("001");
		System.out.println(p.name);

	}

}

 

分享到:
评论

相关推荐

    cxf_helloworld.rar_SOA CXF_SOA JAVA _cxf_cxf helloworld_hellowor

    3. **配置CXF**:通过XML配置文件(如`cxf-servlet.xml`)来告诉CXF如何发布你的服务。 4. **发布服务**:将服务绑定到一个URL,使得其他应用可以通过网络访问。 5. **生成客户端代码**:使用CXF的wsdl2java工具,...

    WebService_CXF_x509

    3. **安全策略**:在CXF的配置文件(如cxf.xml或服务的特定配置)中,你需要启用SSL/TLS,并指定安全策略,例如要求客户端必须提供有效的证书。 4. **代码实现**:在Java代码中,你可以使用CXF的API来设置安全属性...

    android_ksoap2_cxf_wss4j_authentication

    3. **使用WSS4J安全令牌**:如果服务器要求使用WSS4J的令牌认证,你需要在SOAP头中添加这些令牌。这通常涉及到创建一个自定义的`Header`类,并在`SoapSerializationEnvelope`中添加这个头。 4. **发送请求**:使用`...

    webservice cxf_demo

    3. **集成工具**:CXF提供了代码生成器,可以自动生成服务客户端和服务端代码,简化开发过程。 4. **强大的调试和测试工具**:CXF提供了一套完整的测试工具,如CXFWS-Security测试工具,可以帮助开发者调试和测试...

    spring_cxf_lib

    3. **Spring与CXF集成库**:如spring-cxf、spring-ws等,这些库提供了一组Spring Bean定义,使得在Spring环境中配置和管理CXF服务变得更加简单。 4. **其他辅助库**:可能包括XML解析库(如Woodstox或Xerces)、...

    CXF-demo.zip_cxf_cxf 2.7.11 demo_cxf demo_cxf webservice demo_we

    3. **src/main/resources**:资源文件夹,可能包含服务的WSDL(Web Service Description Language)文件,用于描述服务的接口和消息格式。 4. **src/main/webapp**:Web应用目录,可能包含Web服务部署相关的文件,...

    springboot_cxf_security

    3. Spring Security: Spring Security是Spring框架的一个模块,专注于应用安全,提供了一套全面的访问控制和身份验证解决方案。在这个项目中,Spring Security用于保护应用程序的入口点,确保只有经过认证和授权的...

    CXF源码:CXF_Spring源码

    3. **服务发布与消费** 在Spring环境中,CXF服务可以通过以下方式发布: - 使用`@WebService`和`@EndpointImplementor`注解标记服务接口和实现,Spring会自动发现并发布服务。 - 通过XML配置,使用`...

    apache cxf_jar包

    3. **cxf-rt-frontend-jaxws-2.7.12.jar**: JAX-WS(Java API for XML Web Services)前端实现,使得开发者可以使用Java注解来定义Web服务接口和实现,自动生成WSDL(Web服务描述语言)文档。此模块支持服务端和...

    CXF_src_WebService

    3. **WS-*规范实现**:CXF实现了诸如WS-Security、WS-ReliableMessaging、WS-Addressing等Web服务增强规范,增强了服务的安全性、可靠性和交互性。 4. **JAX-WS和JAX-RS实现**:CXF是Java API for XML Web Services...

    spring_cxf_dubbo

    3. 配置Spring:在Spring配置文件中声明CXF服务,包括端点地址、服务类等信息。 4. 启动服务:通过Spring启动CXF服务,使其对外提供服务。 【Dubbo服务提供与消费】 1. 创建服务提供者:定义服务接口,实现接口...

    cxf_spring_maven

    在IT行业中,构建Web服务是常见的任务之一,而Apache CXF和Spring框架的结合使用能够高效地实现这一目标。"cxf_spring_maven"项目就是这样一个实例,它展示了如何在Spring环境中利用CXF来创建和消费Web服务,同时...

    cxf_jar.zip

    3. **Web服务**:Web服务是一种通过网络进行通信的应用程序接口,它允许不同系统之间交换数据。CXF框架提供了创建和消费Web服务的工具,包括SOAP服务和RESTful服务。 4. **POM文件**:在Maven项目中,POM文件是项目...

    cxf_restful_webservice

    3. **Maven或Gradle构建文件**:如pom.xml或build.gradle,用于管理项目依赖和构建流程。 4. **测试文件**:JUnit或其他测试框架的测试用例,用于验证服务功能的正确性。 5. **部署描述符**:如WEB-INF/web.xml,...

    Apache_cxf_学习笔记

    3. 配置CXF服务端点。 4. 部署并启动服务。 5. 创建客户端并调用服务。 2.1.2 步骤详解 这里会详细解释每个步骤的实施方法,包括如何配置XML文件、如何生成服务类、如何部署服务等。 2.2 CXF与Spring集成例子 CXF...

    cxf_spring 相关 jar

    3. `cxf-rt-wsdl.jar`:CXF的WSDL处理模块,用于生成和解析WSDL文件。 4. `spring-beans.jar`:Spring框架的beans模块,包含DI和Bean定义的相关类。 5. `spring-context.jar`:Spring框架的上下文模块,提供了AOP、...

    springmvc_cxf_hibernate.zip

    在IT行业中,Spring、CXF和Hibernate是三个非常重要的开源框架,它们分别在不同的领域有着广泛的应用。Spring作为全面的企业级应用开发框架,CXF用于构建和整合Web服务,而Hibernate则是Java领域中最流行的持久层...

    cxf-core-3.2.4_cxf_源码

    3. 服务器上的CXF接收到消息后,通过Bus解析并路由到对应的Endpoint。 4. Endpoint使用绑定和数据绑定机制将接收到的消息转换为Java对象,然后调用服务实现进行处理。 5. 处理结果反向转换为消息,再通过HTTP返回给...

    spring+cxf_demo

    3. **创建Web服务**:利用CXF提供的注解,如`@WebService`和`@WebServiceClient`,可以在服务接口和实现类上声明Web服务。对于SOAP服务,CXF会根据这些注解自动生成WSDL;对于RESTful服务,可以使用JAX-RS注解如`@...

    CXF_Spring

    3. **服务发布**:通过Spring的`jaxws:endpoint`或`jaxrs:endpoint`标签,将Java类映射为Web服务。 4. **服务消费**:使用`jaxws:client`或`jaxrs:client`标签配置客户端代理,方便调用远程服务。 5. **利用AOP**:...

Global site tag (gtag.js) - Google Analytics