我正在使用CXF(使用我的wsdl在我的pom.xml中自动生成我的web服务)和JBoss(eclipse ide),我在从Web应用程序访问web服务时遇到了一些麻烦。我找到了这个资源:http://blog.progs.be/?p=92但是我很难使用WSDL_LOCATION = cl.getResource(“my / progam / pack / wsdl / myService.wsdl”);在我的代码中正常工作。
我的wsdls位于src / main / wsdl中,并将以下行添加到.classpath文件中:classpathentry kind =“src”path =“src / main / wsdl”
我还创建了文件夹my,program,pack,wsdl并将我的wsdls放到该位置,因此可以访问。
但是,无论如何,classloader.getResource调用总是返回null。
当我指定getResource(“/ wsdl / myService.wsdl”)时,它不会返回null,但我相信它会查看完整的文件路径,而不是我需要的东西(考虑到URL的一部分包含wsdl的路径)文件一直通过jboss服务器目录并包含WEB-INF目录。
我的.classpath文件设置不正确还是我错过了其他内容?
如果WSDL位置不正确,它总是抛出ClassCast Exception,如下所示:
javax.xml.ws.Service上的java.lang.ClassCastException:org.apache.cxf.jaxws.ServiceImpl。(Service.java:81)
答案 0 :(得分:1)
我的wsdls位于
src/main/wsdl
(...)
为了在类路径上获取这些文件,您需要将目录声明为POM中的资源:
<project>
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/wsdl</directory>
</resource>
</resources>
...
</build>
</project>
现在你的WSDL最终应该在classes
目录下。