Web服务(CXF)和Jboss的Java类路径问题

时间:2010-03-30 13:25:03

标签: java maven-2 jboss classpath cxf

我正在使用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)

1 个答案:

答案 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目录下。