【问题标题】:Worklight javax/xml/name space/QNameWorklight javax/xml/名称空间/QName
【发布时间】:2014-09-14 10:48:25
【问题描述】:

IBM Worklight 6.2/Liberty 8.5.5.1

对于Webservice的自定义实现,

  1. 已编写 Java 代码,并将 jaxrpc.jar 包含在 worklight 项目的服务器 lib 文件夹中

  2. 在 Eclipse 中进行测试时,它工作正常。

  3. 当构建移动到测试环境时,服务器抛出了以下错误。

Invocation of init method failed; nested exception is java.lang.LinkageError: 
loaderconstraint violation: loader (instance of com/ibm/ws/classloading/internal
/ParentLastClassLoader) previously initiated loading for a different type with name
"javax/xml/namespace/QName"

我了解存在冲突。所以我从 server/lib 文件夹中的 jaxrpc.jar 中删除了 QName.class。但是我可以在测试环境中部署和运行它而不会出错。

因为这不是一个解决方案,所以我尝试从 server/lib 中删除 jaxrpc.jar,然后编译器在 .java 中抛出异常

The type javax.xml.rpc.Service cannot be resolved. It is indirectly referenced from required .class files

如果我仍然继续构建,则在启动服务器时没有错误但在运行时出现类未找到异常。

如何利用 Liberty 库或者是任何替代方法来解决。

【问题讨论】:

    标签: jakarta-ee ibm-mobilefirst worklight-server websphere-liberty jax-rpc


    【解决方案1】:

    Liberty 不支持 JAX-RPC。仅支持 JAX-RS。通过引用 jaxrpc.jar 文件,您会遇到类冲突,因为 JAX-RS 功能是 Worklight 所需的 REST 功能的依赖项。 最好的方法是使用 JAX-RS 来实现您的 Web 服务。其他解决方案是您已测试从 jaxrpc.jar 文件中删除冲突的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2018-06-11
      • 2018-12-30
      相关资源
      最近更新 更多