Webservice客户端工程导成runnable jar包运行时出现异常

在eclipse中使用spring 4.1.3.RELEASE和cxf 2.5.0开发的Webservice客户端,导出为runnable jar包后运行出现NullPointerException。问题源于打包方式,特别是'Extract required libraries into generated JAR'选项。解决方案是选择'Package required libraries into generated JAR'或'Copy required libraries into a sub-folder next to the generated JAR'。异常源于cxf框架的多个jar包中的bus-extensions.txt文件冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题描述
eclipse集成环境,spring 4.1.3.RELEASE + cxf 2.5.0框架,开发的Webservice客户端程序。在eclipse开发环境下运行正常,导出runnable jar包时出现如下异常:
java.lang.NullPointerException: null
at org.apache.cxf.wsdl11.WSDLServiceFactory.(WSDLServiceFactory.java:92)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204)
at org.apache.cxf.jaxws.ServiceImpl.(ServiceImpl.java:148)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:90)
at javax.xml.ws.Service.(Unknown Source) ~[na:1.7.0_79]

二、初步分析
既然代码工程在eclipse能够正常运行,导出包后出现空指针异常,应该是打包的问题,runnable jar打包对依赖库的处理方式有三种,如下图所示:
这里写图片描述
Library handing的三种处理方式解释如下:
1、Extract required libraries into generated JAR。
把项目中所有的依赖jar包内的class,xml等文件都拆开,放在jar的对应的目录中,即导出的jar文件是一个独立的,没有其他依赖jar包的文件,因为依赖的jar包已经全部拆散了。
2、Package required libraries into generated JAR。
把项目中所有的import jar都包在jar的根目录下,还是以依赖包的形式存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值