作者:zhattt199_117 | 来源:互联网 | 2024-11-08 18:43
在JavaWeb服务开发中,ApacheCXF和Axis2是两个广泛使用的框架。CXF由于其与Spring框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用CXF框架进行Web服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。
前言
在开发java webservice时,有两个比较流行的框架:axis2和cxf。
cxf可以无缝的和spring集成,而axis2需要打包成jar文件,在tomcat下面跑。于是我们选择了cxf开发webservice。
下面一步步的介绍用cxf开发服务端和客户端的例子。
一、开发服务端:
1.开发接口类
package com.mycompany.webservice.server;
import javax.jws.WebService;
@WebService
public interface Greeting {
public String greeting(String userName);
}
2.开发实现类
import java.util.Calendar;
import javax.jws.WebService;
@WebService(endpointInterface = "com.mycompany.webservice.server.Greeting")
public class GreetingServiceImpl implements Greeting {
public String greeting(String userName) {
return "Hello " + userName + ", currentTime is " + Calendar.getInstance().getTime();
}
}
服务端的代码开发就到此了。下面要配置文件。
二、配置文件
1.在application.xml中:
添加(实现类的bean,需要spring注入)
2.在web.xml中:
CXFServlet
org.apache.cxf.transport.servlet.CXFServlet
1
CXFServlet
/webservice/*
这个设置很重要,那么我们的webservice的地址就http://localhost:8080/yourProgramName/webservice/Greeting
好了。到此我们的服务端就开发好了。
三、开发客户端
下面开发我们的客户端,来调用上面的服务。
package com.mycompany.webservice.client;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class GreetingServiceClient {
public static void main(String[] args) {
//创建WebService客户端代理工厂
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
//注册WebService接口
factory.setServiceClass(Greeting.class);
//设置WebService地址
factory.setAddress("http://localhost:8080/yourProgramName/webservice/Greeting");
Greeting greetingService = (Greeting)factory.create();
System.out.println("invoke webservice...");
System.out.println("message context is:"+greetingService.greeting("gary"));
}
}
好了客户端也开发完成。