Webservices(CXF) 和 Jboss 的 Java 类路径问题

标签 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 的一部分包含通过 jboss 服务器目录一直到 wsdl 文件的路径,并包括 WEB-INF 目录。

我的 .classpath 文件设置不正确还是我遗漏了其他内容?

如果 WSDL 位置不正确,它总是会抛出 ClassCast 异常,如下所示:

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

最佳答案

I have my wsdls located in 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 目录下。

关于Webservices(CXF) 和 Jboss 的 Java 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545499/

相关文章:

tomcat - 在同一个 jboss-4.0.3 中部署两个具有不同域名但相同上下文路径的 war

java - ObjectOutputStream/ObjectInputStream的文件操作问题

java - 如何让数组中的所有卡片都显示出来?

java - 无法在项目 produit-webapp 上执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 1:compile (default-compile)

java - 如何终止 NetBeans 中正在运行的 Maven 构建?

jboss - 如何在一个 Web 应用程序中执行 Jersey 1.6 和 axis2 1.3 期间解决 "java.lang.LinkageError: loader constraint violation"问题?

java - 将表保存在 Docker 容器中

java - 在命令模式中使用 lambda

Maven 多模块执行点

java - 部署爆炸耳朵的策略