cxf的soap风格+spirng4+maven 客户端
2023-09-14 08:57:25 时间
上篇博客介绍了,cxf的soap风格的服务端,现在我们写客户端来调用
1、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jacky</groupId> <artifactId>cxf_client</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>cxf_client</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-common</artifactId> <version>2.5.4</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-core</artifactId> <version>2.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>2.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> </project>
2.Info.xml
package com.jacky; public class Info { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Info [name=" + name + ", age=" + age + "]"; } }
3、App.java
package com.jacky; import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; import org.junit.Test; import com.jacky.service.GetInfoService; /** * Hello world! * */ public class App { /** * 简介:调用方式采用了和RMI类似的机制,即客户端直接服务器端提供的服务接口(interface), * CXF通过运行时代理生成远程服务的代理对象, * 在客户端完成对webservice的访问;几个必填的字段: * setAddress-这个就是我们发布webservice时候的地址,保持一致。 缺点:这种调用service的好处在于调用过程非常简单,就几行代码就完成一个webservice的调用, * 但是客户端也必须依赖服务器端的接口,这种调用方式限制是很大的, * 要求服务器端的webservice必须是java实现--这样也就失去了使用webservice的意义。 */ @Test public void test1(){ JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean(); bean.setServiceClass(GetInfoService.class); bean.setAddress("http://localhost:8080/cxf_demo/cxf/getInfoService"); GetInfoService service = (GetInfoService)bean.create(); int result = service.add(1, 1); System.out.println("result====="+result); Info info = service.getInfo("罗志茂", 21); System.out.println("info==="+info); } /** * 简介:只要指定服务器端wsdl文件的位置,然后指定要调用的方法和方法的参数即可,不关心服务端的实现方式。 * wsdl [Web Services Description Language]网络服务描述语言是Web Service的描述语言,它包含一系列描述某个web service的定义 * @throws Exception */ @Test public void test2() throws Exception { JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance(); Client client = clientFactory.createClient("http://localhost:8080/cxf_demo/cxf/getInfoService?wsdl"); Object[] objs ={1,2}; Object[] result = client.invoke("add", objs); System.out.println(result[0]); } }
在这里cxf soap客户端的两种调用方式就写好了
链接:http://pan.baidu.com/s/1mi376Es 密码:ljy6
欢迎关注
相关文章
- Maven历史版本下载「建议收藏」
- 【linux】linux 命令:查看 linux 服务器的 jdk、Tomcat、mysql、maven 版本号「建议收藏」
- Apache Maven 高级应用(Part A)
- Maven学习笔记(十二)-maven打包之resource配置
- IDEA配置Maven教程
- maven配置环境变量失败解决办法
- Maven构建配置和激活SpringBoot配置文件
- Maven:第一章:关于maven依赖死活都下载不了终极解决方案
- 程序开发过程中常见的Maven包
- 向maven中央仓库提交jar
- maven私有仓库搭建
- Maven部署构件至远程仓库详解程序员
- 搭建nexus私服(maven)详解编程语言
- 解决eclipse安装maven的问题:Unable to update index for central|http://repo1.maven.org/maven2详解编程语言
- maven 高速镜像详解编程语言
- Linux系统快速部署Maven环境(linux安装maven)
- 的依赖Maven中添加MySQL依赖的操作步骤(maven添加mysql)
- 数据库使用Maven操作Oracle数据库的入门指南(maven中oracle)
- 技巧Redis联合Maven进阶实践配置技巧篇(redis配置maven)