JBoss EAP 7.3部署CXF Web服务时无法定位WSDL文件问题咨询
问题原因
- 你配置的
wsdlLocation="src/main/resources/wsdl/HelloWorld.wsdl"是Maven项目的本地源码路径,该路径仅存在于你的开发项目目录中,项目打包成WAR包部署到JBoss时,src目录不会被打进最终的部署包内,运行时该路径本身就不存在。 - 没有加协议前缀的相对路径会被应用服务器默认以自身进程的工作目录为基准解析,JBoss默认的工作目录就是其安装路径下的
bin文件夹,因此系统会自动把你写的相对路径拼接到JBoss的bin路径之后,就出现了你报错中的路径。
修复方法
Maven项目中src/main/resources下的所有文件打包后会被放到部署包的WEB-INF/classes目录下,属于应用的类路径资源,直接修改jaxws:endpoint节点的wsdlLocation属性为类路径加载即可:
<jaxws:endpoint id="helloWorld" implementor="com.tsdevelopment.HelloWorldImpl" wsdlLocation="classpath:wsdl/HelloWorld.wsdl" address="/HelloWorld" />
修改后重新部署即可正常加载WSDL文件。
内容的提问来源于stack exchange,提问作者TSSK
相关产品推荐
相关产品推荐

