【问题标题】:Java Classpath Issues with Webservices(CXF) and JbossWebservices(CXF) 和 Jboss 的 Java 类路径问题
【发布时间】:2010-03-30 13:25:02
【问题描述】:

我正在将 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 异常,如下所示:

java.lang.ClassCastException: org.apache.cxf.jaxws.ServiceImpl at javax.xml.ws.Service.(Service.java:81)

【问题讨论】:

  • JRE、CXF 和 JBoss 有哪些版本?
  • cxf 2.2.7,jboss 4.2.3,jre 1.5
  • 你是在消费网络服务还是暴露网络服务?

标签: java maven-2 jboss classpath cxf


【解决方案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 目录下结束。

【讨论】:

  • webapp 是客户端。我正在尝试使用类路径而不是绝对路径,但它不起作用。
  • @JohnC 查看我的更新。如果你的 pom.xml 中没有这个,请再试一次。
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2014-07-19
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多