Java Maven项目使用CXF插件生成WebService代理
2024-08-26 17:29:13
CXF生成代理类插件名称:cxf-codegen-plugin
实现功能:
- 指定代理类所在的包
- 生成soapheader
操作:
eclipse中run as -> maven build -> goals -> generate-sources
pom.xml配置:
<build>
<finalName>spring-demo01</finalName>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<!-- 生成代理类的目录 -->
<sourceRoot>src/main/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<!-- wsdl地址 -->
<wsdl>wsdl address</wsdl>
<!-- 指定代理类包名 -->
<packagenames>
<packagename>cn.yrm.ws</packagename>
</packagenames>
<!-- 是否生成soapheader -->
<extendedSoapHeaders>true</extendedSoapHeaders>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
调用方法:
1、pom添加依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.9</version>
</dependency> <dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
2、测试类
package cn.yrm.ws; import java.util.List; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class WebServiceInvokeTest { Logger logger = LoggerFactory.getLogger(WebServiceInvokeTest.class); private ProcessServiceSoap processService;
private String address = "your endpoint address";
private MySoapHeader mySoapHeader; @Before
public void testGenerateClient(){
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(ProcessServiceSoap.class);
factory.setAddress(address);
// factory.setUsername("username");
// factory.setPassword("password");
processService = factory.create(ProcessServiceSoap.class); mySoapHeader = new MySoapHeader();
mySoapHeader.setUserName("your username");
mySoapHeader.setPassWord("your password");
mySoapHeader.setSystemId(3);
} @Test
public void testInvoke(){
WSResponseOfListOfProcessEntityDto dto = processService.getProcessInfo("epm", mySoapHeader);
logger.info(dto.getReturnMsg());
ArrayOfProcessEntityDto processes = dto.getRet();
List<ProcessEntityDto> ls = processes.getProcessEntityDto();
for(ProcessEntityDto pe : ls){
logger.info(pe.getDisplayName());
}
}
}
最新文章
- [Algorithm] 机器学习算法常用指标总结
- Win10 IoT C#开发 4 - UART 串口通信
- qt环境下Mapx组建的编程---------regoin
- 解决拖拽有内容的div的bug和兼容问题
- 使用bokeh-scala进行数据可视化
- Google测试分享-测试经理
- Hibernate学习笔记1
- CSS中font-style的斜体属性Italic oblique的区别
- mysql 导入导出数据库、数据表
- RedHat Linux下注册Apache为系统服务并设为开机启动
- heritrix 3.2.0 -- 环境搭建
- Windows 10Bash命令
- uvalive4015 (树上背包)
- Android应用程序更新并下载
- 方法的形参、ref参数、out参数的区别
- 001-zookeeper 简介-paxos算法,zk简介,特点
- mysql启动失败又一例
- Linux中ls -l(ll)返回结果中的文件访问权限-rw-r--rw-
- 2018面向对象程序设计(Java)第4周学习指导及要求
- alter 和 update的用法和区别