CXF开发webservice需要的最少jar包,CXF发布和调用客户端代码

cxf-2.3.3.jar
geronimo-annotation_1.0_spec-1.1.1.jar
geronimo-jaxws_2.2_spec-1.0.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
geronimo-ws-metadata_2.0_spec-1.1.3.jar
jaxb-api-2.2.1.jar
jaxb-impl-2.2.1.1.jar
neethi-2.0.4.jar
wsdl4j-1.6.2.jar
XmlSchema-1.4.7.jar
wstx-asl-3.2.9.jar

slf4j-api-1.6.2.jar

 

以上jar是client端需要的最少jar,如果需要webservice端,则需要增加其他几个,我直接打了rar附件,可以下载(这个是针对jetty的,如果不用jetty,则没必要增加)

jetty-http-7.5.4.v20111024.jar
jetty-io-7.5.4.v20111024.jar

jetty-server-7.5.4.v20111024.jar

jetty-util-7.5.4.v20111024.jar

jetty-continuation-7.5.4.v20111024.jar

 
 

简单介绍一下cxf开发客户端和服务端的代码块

发布服务端代码:

@WebService
public interface ApprovalService {

	/**
	 * 3.1.10.	审批结果回调接口
	 * @param status
	 * @return
	 */
	@WebMethod
	String syncApprovalResult(@WebParam(name = "status") String status);
}

 

 

实现类

 

 

@WebService
public class ApprovalServiceImpl implements ApprovalService{

	@WebMethod
	public String syncApprovalResult(String status) {
		System.out.println("************************************************");
		return null;
	}

}

 

 发布webservice

 

@Service
public class ApprovalPublish implements Serializable{
	
	@PostConstruct//此方法为我项目中spring容器启动自动发布而写的
	public void publishApprovalService(){
		this.publish(ApprovalService.class, new ApprovalServiceImpl());
	}

	private void publish(Class<?> clazz, Object implObj) {
		System.out.println("启动webservice【"+clazz.getSimpleName()+"】");
		// 创建WebService服务工厂
		JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
		// 注册WebService接口
		factory.setServiceClass(clazz);
		// 发布接口
		factory.setAddress("http://localhost:9000/e7cc/" + clazz.getSimpleName());
		factory.setServiceBean(implObj);
		// factory.getInInterceptors().add(new LoggingInInterceptor());
		// factory.getOutInterceptors().add(new LoggingOutInterceptor());
		// 创建WebService
		factory.create();
	}
	
	public static void main(String[] args) {
		new ApprovalPublish().publishApprovalService();

	}
}

 

 以上就可以发布一个webservice服务了,访问地址:http://localhost:9000/e7cc/ApprovalService?wsdl

 

 

客户端代码

 

 

 

public static void main(String[] args) {
		
		JaxWsProxyFactoryBean  factoryBean=new JaxWsProxyFactoryBean(); 
        factoryBean.getInInterceptors().add(new LoggingInInterceptor()); 
        factoryBean.getOutInterceptors().add(new LoggingOutInterceptor()); 
        factoryBean.setServiceClass(ProcessService.class); 
        factoryBean.setAddress("http://localhost:9000/e7cc/ApprovalService?wsdl"); 
        ApprovalService approvalService=(ApprovalService) factoryBean.create(); 
        approvalService.syncApprovalResult("hello");
	}

 

 以上为cxf发布和调用服务的代码,这个是通过java的代理类做的,还有一种通过spring-application.xml的配置文件区生成的,原理一样,以后有时间补上吧

 

 

你可能感兴趣的:(webservice,CXF)