加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用CXF做webservice整合现有项目的例子

发布时间:2020-12-17 00:07:05 所属栏目:安全 来源:网络整理
导读:???? 从网上看了很多CXF的资料,大部分都是单独的作为一个webservice项目,对于在现有的spring项目上提供webservice服务的例子基本没有找到。 ???? 我做的这个例子是介绍怎么把cxf整合到现有的spring项目中,现在只做到可以传简单的字符串和JAVABEAN,复杂的

???? 从网上看了很多CXF的资料,大部分都是单独的作为一个webservice项目,对于在现有的spring项目上提供webservice服务的例子基本没有找到。

???? 我做的这个例子是介绍怎么把cxf整合到现有的spring项目中,现在只做到可以传简单的字符串和JAVABEAN,复杂的以后研究。

? ? ? 这是例子的下载地址:一个简单的CXF例子

???? 一,应用cxf应该先把该服务所需要的架包加载进项目中。

???????????? 对于一个已经搭建好的spring项目,我做的项目中所缺少的架包是

????????????? cxf-2.4.3.jar?? ,?? neethi-3.0.1.jar???? ,???? wsdl4j-1.6.2.jar???? ,?? xmlschema-core-2.0.1.jar??? ,commons-logging-1.1.1.jar?? ,spring一系列的架包

??? 二,首先是服务接口

package com.zcz.cxf.service;



import javax.jws.WebService;


@WebService 
public interface GreetingService { 
   public String greeting(String userName);
   public String say(String eat);
   //public String user(User user);
} 

????? 三,编写服务实现类

package com.zcz.cxf.service.impl;

import javax.jws.WebService;

import com.zcz.cxf.service.GreetingService;

@WebService
public class GreetingServiceImpl implements GreetingService { 

       public String greeting(String userName){
             return "你好! " + userName; 
       }

      public String say(String eat) {
	      return "该吃饭了"+eat;
	}

	
} 


?

?????? 四,配置spring启动时,加载的xml文件,按照下面的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"
	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" />
	
	<jaxws:endpoint id="greetingService"
		implementor="com.gary.test.ws.service.impl.GreetingServiceImpl" 
		address="/GreetingService" />
</beans> 

?????? xmlns:jaxws=http://cxf.apache.org/jaxws

?????? http://cxf.apache.org/jaxwshttp://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" />

?????? <jaxws:endpoint id="greetingService"implementor="com.gary.test.ws.service.impl.GreetingServiceImpl" address="/GreetingService" />

???????五,配置web.xml对于webservice的调用,在web.xml中添加以下代码即可

?

<servlet>
		<servlet-name>CXFServlet</servlet-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>/cxf/*</url-pattern>
	</servlet-mapping>
 


?????? 六,启动项目如果访问http://localhost:8080/springmvcModel/cxf,出现如下图所示的内容则表示基于cxf的webservice配置成功



????? 七,客户端对于该接口的调用

????????????? 首先,新建一个与服务器端相同的服务接口类GreetingService

????????????? 其次,写调用服务的类

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;


public class TestGreetingService {

	public static void main(String[] args) {
		//创建WebService客户端代理工厂  
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
		//注册WebService接口  
		factory.setServiceClass(GreetingService.class);  
		//设置WebService地址  
		factory.setAddress("http://localhost:8080/springmvcModel/cxf/GreetingService");  
		GreetingService greetingService = (GreetingService)factory.create();  
		System.out.println("开始调用webservice...");  
		System.out.println("返回的信息是:"+greetingService.say("米饭")); 

	}

}

????? 配置成功

,做完之后发现其实很简单,虽然不明白原理,但是会做基本的应用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读