apache CXF入门

定义:面向服务的架构(SOA)开发中的一个工具,其实已经有点过时了。

下载:官网:cxf.apache.org

    Apache CXF = Celtix + Xfire
    支持多种协议:
        SOAP1.1,1.2
        XML/HTTP
        CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS。C,c++,C#)
        并可以与Spring进行快速无缝的整合
        灵活的部署:可以运行在Tomcat,Jboss,Jetty(内置),IBMWS,BeaWL上面。

入门案例:

   1)服务端开发

第一步:创建动态web项目
第二步:导入CXF相关jar包(一共28个)

第三步:在web.xml中配置CXF框架提供的一个Servlet

	<!-- 配置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.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>cxf</servlet-name>
		<url-pattern>/service/*</url-pattern>
	</servlet-mapping>

第四步:在类路径下提供cxf.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:soap="http://cxf.apache.org/bindings/soap"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
					http://www.springframework.org/schema/beans/spring-beans.xsd
					http://cxf.apache.org/bindings/soap 
					http://cxf.apache.org/schemas/configuration/soap.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" />

</beans>

第五步:开发一个接口和实现类

@WebService
public interface HelloService {
	public String sayHello(String name);
}

public class HelloServiceImpl implements HelloService {
	@Override
	public String sayHello(String name) {
		System.out.println("基于CXF开发服务端sayhello方法被调用了!");
		return "hello "+name;
	}
}

第六步:在cxf.xml中注册服务

	<!-- 引入CXF Bean定义如下,早期的版本中使用 -->
	<bean name="helloService" class="com.pb.service.HelloServiceImpl"></bean>
	<jaxws:server id="myService" address="/cxfService">
		<jaxws:serviceBean>
			<ref bean="helloService"/>
		</jaxws:serviceBean>
	</jaxws:server>

   2)客户端开发

第一步:使用jdk提供的wsimport命令生成本地代码完成调用

wsimport -s . http://192.168.0.101:8080/CXFService/service/cxfService?wsdl

第二步:创建一个java项目,导入WebService需要的jar包,并将生成目录下的HelloService.java复制到项目中

第三部:提供配置文件cxf.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:soap="http://cxf.apache.org/bindings/soap"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
					http://www.springframework.org/schema/beans/spring-beans.xsd
					http://cxf.apache.org/bindings/soap 
					http://cxf.apache.org/schemas/configuration/soap.xsd
					http://cxf.apache.org/jaxws 
					http://cxf.apache.org/schemas/jaxws.xsd">

	<jaxws:client id="myClient"
		address="http://192.168.0.101:8080/CXFService/service/cxfService"
		serviceClass="com.pb.service.HelloService">
		
	</jaxws:client>	
</beans>

第四步:读取spring配置文件,创建spring工厂,从工厂中获取代理对象,实现远程调用

public class App {
	public static void main(String[] args) {
		ApplicationContext ac=new ClassPathXmlApplicationContext("cxf.xml");
		HelloService helloService=(HelloService) ac.getBean("myClient");
		String re=helloService.sayHello("wutong");
		System.out.println(re);
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值