`

spring 集成cxf

 
阅读更多

Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。

 

1.在web.xml添加cxf对应的servlet

 

	<servlet>
		<servlet-name>CXFServlet</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>CXFServlet</servlet-name>
		<url-pattern>/data/ws/*</url-pattern>
	</servlet-mapping>

 当我们输入http://locahost:8080/test/date/ws/,我们就能看到web下的所有webservice。

2.定义WEBService接口及实现

package com.vcredit.jdev.obiz.account.controller;

import java.net.MalformedURLException;

import javax.jws.WebParam;
import javax.jws.WebService;

import com.vcredit.jdev.obiz.ws.entity.CommonContent;
import com.vcredit.jdev.obiz.ws.entity.LoginContent;
import com.vcredit.jdev.obiz.ws.entity.WSResponse;

/** 
* @ClassName: AccountWebService 
* @Description: TODO(account module WebServcie interface CXF ?wsdl) 
* @author dk 
* @date 2014年8月18日 下午1:36:17 
*  
*/
@WebService
public interface AccountWebService {
	
	public WSResponse<LoginContent> login(@WebParam(name="loginName") String loginName,@WebParam(name="password")String password);

	public WSResponse<CommonContent> addLoginAccount(@WebParam(name="username") String username,@WebParam(name="mobile") String mobile,@WebParam(name="password") String password,@WebParam(name="verifyCode") String verifyCode) throws Exception;

	public WSResponse<CommonContent> updatePassword(@WebParam(name="username") String username,@WebParam(name="secureCode") Long secureCode,@WebParam(name="oldPassword") String oldPassword,@WebParam(name="newPassword") String newPassword);

	public WSResponse<CommonContent> resetPassword(@WebParam(name="mobile") String mobile,@WebParam(name="newPassword") String newPassword,@WebParam(name="verifyCode") String verifyCode);

	public WSResponse<CommonContent> checkCellPhone(@WebParam(name="mobile") String mobile);

	public WSResponse<CommonContent> checkVerifyCode(@WebParam(name="mobile") String mobile,@WebParam(name="verifyCode") String verifyCode);

	public WSResponse<CommonContent> sendVerifyCode(@WebParam(name="mobile") String mobile) throws MalformedURLException;

}

   实现类:

package com.vcredit.jdev.obiz.account.controller;

import java.net.MalformedURLException;

import javax.jws.WebService;

import net.gplatform.sudoor.server.security.model.auth.SSAuth;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.vcredit.jdev.obiz.account.model.Login;
import com.vcredit.jdev.obiz.account.model.PasswordReset;
import com.vcredit.jdev.obiz.account.model.PhoneService;
import com.vcredit.jdev.obiz.account.model.Register;
import com.vcredit.jdev.obiz.account.model.entity.Account;
import com.vcredit.jdev.obiz.base.BaseConstants;
import com.vcredit.jdev.obiz.ws.entity.CommonContent;
import com.vcredit.jdev.obiz.ws.entity.LoginContent;
import com.vcredit.jdev.obiz.ws.entity.WSResponse;

@Component
@WebService
public class AccountWebServiceImpl implements AccountWebService {
	
	private Logger logger =  LoggerFactory.getLogger(AccountWebServiceImpl.class);
	
	@Autowired
	private SSAuth auth;
	
	@Autowired
	private Register register;
	
	@Autowired
	private Login login;
	
	@Autowired
	private PasswordReset passwordReset;
	
	@Autowired
	private PhoneService phoneService;
	
	@Override
	public WSResponse<LoginContent> login(String loginName, String password) {
		
		if(StringUtils.isBlank(loginName)){
			return WSResponse.errorResponse(new LoginContent(false, "-2",-1L,"UserKind",-1L));
		}
		if(StringUtils.isBlank(password)){
			return WSResponse.errorResponse(new LoginContent(false, "-2",-1L,"UserKind",-1L));
		}
		Account account = register.getAccountByLoginName(loginName);
		if(account != null){
			auth.authenticate(account.getId().toString(), password);
		}else{
			return WSResponse.errorResponse(new LoginContent(false, "-2",-1L,"UserKind",-1L));
		}
		return WSResponse.successResponse(new LoginContent(true, "2", account.getId(), "UserKind", 1L));
	}
}
。。。。。
@WebService
@WebParam(name="loginName") 参数的设置,明确参数。当不设置,会出现arg0,arg1的表示参数

 

3.在spring.xml添加Bean

<?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"
	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">
	<jaxws:endpoint id="accountServiceEndPoint" implementor="#accountServiceImpl" address="/soap/account/accountService" />

    <jaxws:endpoint id="loginService" implementor="#loginServiceImpl" address="/soap/account/loginService" />
    <jaxws:endpoint id="newConsumerService" implementor="#newConsumerServiceImpl" address="/soap/account/newConsumerService" />
    <jaxws:endpoint id="featureService" implementor="#featureServiceImpl" address="/soap/account/featureService" />
    <jaxws:endpoint id="userService" implementor="#userServiceImpl" address="/soap/account/userService" />
    <jaxws:endpoint id="accountWebService" implementor="#accountWebServiceImpl" address="/soap/account/accountWebService" />
	

	<jaxws:client id="accountServiceClient" serviceClass="com.vcredit.jdev.obiz.example.controller.AccountService" address="http://localhost:8080/obiz/data/ws/soap/account/accountService" />
</beans>

 4.pom.xml

<properties>
		<cxf.version>3.0.0</cxf.version>
</properties>

	<build>
		<plugins>


			<plugin>
				<groupId>org.apache.cxf</groupId>
				<artifactId>cxf-codegen-plugin</artifactId>
				<version>${cxf.version}</version>
				<executions>
					<execution>
						<id>generate-sources</id>
						<phase>generate-sources</phase>
						<configuration>
							<includes>
								<include>*.wsdl</include>
							</includes>
						</configuration>
						<goals>
							<goal>wsdl2java</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>

	</build>


	<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxws</artifactId>
			<version>${cxf.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-transports-http</artifactId>
			<version>${cxf.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-ws-security</artifactId>
			<version>${cxf.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
			<version>${cxf.version}</version>
		</dependency>

 

 

 

分享到:
评论

相关推荐

    Spring集成Cxf调用WebServices

    总之,Spring集成CXF调用Web Services是一个强大的组合,它提供了灵活的配置方式和强大的功能,使开发者能够更高效地构建和维护Web服务应用。通过理解并实践上述知识点,开发者可以更好地驾驭这一技术栈。

    spring集成cxf的ws与rs

    首先,让我们了解什么是Spring集成CXF。Spring框架提供了对CXF的支持,允许开发者在Spring容器中管理和配置CXF服务。这样,我们可以利用Spring的强大功能来管理CXF的服务生命周期,同时利用CXF的Web服务实现能力。 ...

    Spring集成Cxf暴露WebServices示例

    本示例将探讨如何通过Spring集成Cxf来暴露Web服务,帮助开发者更好地理解和实现这一功能。 首先,我们需要了解Spring与Cxf的基本概念。Spring框架提供了一个全面的编程和配置模型,用于简化企业级Java应用程序的...

    spring集成cxf客户端和服务器端demo(含自定义拦截器)

    在本项目中,"spring集成cxf客户端和服务器端demo(含自定义拦截器)"是一个实战案例,展示了如何在Spring框架下与Apache CXF服务进行整合,实现客户端和服务端的交互,并利用拦截器来增强功能。以下是这个项目涉及的...

    spring 集成 cxf 简单例子

    总结来说,Spring集成CXF的例子展示了如何在Spring环境下快速搭建一个Web服务,通过定义服务接口、实现接口、配置Spring和Web容器,最后通过测试验证服务是否正常运行。这个过程涉及到了Spring的bean管理和CXF的Web...

    spring集成cxf客户端和服务器端demo

    首先,我们来看看标题“spring集成cxf客户端和服务器端demo”。这表明我们将讨论如何同时设置Spring和CXF来创建一个能够提供和消费Web服务的系统。这通常涉及到以下步骤: 1. **配置Spring上下文**:我们需要创建一...

    spring集成cxf(webservice)

    ### Spring集成CXF(WebService) #### WebService概览 WebService是一种构建应用程序的普遍模型,能够跨平台、跨语言实现服务的交互与共享。它是一种自包含、自描述、模块化的应用,可以发布、定位并通过Web调用...

    Spring集成CXF实例(包含WSS4J安全认证)

    本实例将详细介绍如何在Spring环境中集成CXF,并使用WSS4J进行安全认证。 **一、Spring与CXF集成** 1. **配置CXFServlet**: 首先,我们需要在Spring的`web.xml`配置文件中声明CXF的Servlet,如`...

    Spring集成CXF

    **Spring集成CXF详解** Spring框架是Java领域中广泛使用的轻量级开源框架,它以其IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性深受开发者喜爱。而CXF则是一个强大的Web服务开发框架,它...

    spring集成cxf,server发布webservice,client调用webservice

    使用spring集成cxf,在两个web project里发布及调用webservice server端使用spring+springmvc+mybatis+cxf,client端使用struts2+spring+hibernate+cxf 两个工程均为myeclipse project,包含所有除myeclipse自带以外...

    spring+cxf 整合jar包

    5. **Spring MVC集成**:如果你的项目使用了Spring MVC,你可以将CXF服务与控制器结合,提供RESTful API,使得前后端交互更加便捷。 6. **异常处理**:Spring和CXF结合,可以统一处理服务调用中的异常,提供更优雅...

    web service cxf 2.7.5 与spring 3.0 集成

    在本篇中,我们将深入探讨如何将Apache CXF 2.7.5版本与Spring 3.0框架集成,以便在Java应用程序中创建和消费Web服务。 **一、CXF简介** Apache CXF是一个全面的Web服务框架,它支持多种协议,如SOAP、RESTful HTTP...

    spring 3.0.5 集成cxf

    - `cxf.html`:可能是关于CXF与Spring集成的教程或指南,详细解释了集成过程和注意事项。 - `cxfwebservice.html`:可能详细介绍了如何使用CXF创建和部署Web服务,以及如何进行测试。 - `ecnuWebService.zip`:可能...

    spring cxf DEMO代码1

    【标题】"Spring CXF DEMO代码...通过深入研究这些代码,你可以增强自己在Spring集成CXF进行Web服务开发的能力,这对构建企业级分布式系统非常有帮助。同时,可以参考博文链接(已提供)获取更详细的解释和上下文信息。

    Spring整合CXF demo

    **Spring整合CXF详解** Spring框架与Apache CXF的整合是企业级Java应用中常见的实践,主要用于构建基于SOAP和RESTful服务。这个"Spring整合CXF demo"项目提供了一个直观的例子,帮助开发者理解如何在Spring环境中...

    CXF 2.3 集成Spring3.0入门 HelloWorld

    首先,集成CXF和Spring的关键在于利用Spring的IoC(Inversion of Control)容器来管理CXF的服务。这包括创建服务端点接口、实现该接口的服务类,以及配置Spring XML文件来定义这些组件。在"Hello World"示例中,可能...

    Spring整合CXF发布服务

    7. **Spring Boot集成** 如果使用Spring Boot,整合过程会更加简洁。只需要在`pom.xml`中添加CXF和Spring Web的依赖,然后在`@SpringBootApplication`类上启用Web服务支持,或者在配置类中定义CXF的bean。Spring ...

    spring+cxf编写简单的webservice接口

    4. **使用Spring集成CXF**: - 我们需要在Spring配置文件中声明CXF的bean,例如`JaxWsServerFactoryBean`,并配置服务的地址和服务类。 - 这样,Spring会负责实例化和管理这些bean,而CXF会处理Web服务的发布和...

Global site tag (gtag.js) - Google Analytics