Worklight javax / xml / name space / QName

时间:2014-09-14 10:48:26

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

IBM Worklight 6.2 / Liberty 8.5.5.1

对于Webservice的自定义实现,

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

  2. 在日食中测试时效果很好。

  3. 当构建移至Testing环境时,服务器抛出了以下错误。

  4. 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"

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

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

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

    如果我仍在进行构建,那么在启动服务器时没有错误,但在运行时发生了类未找到异常。

    如何使用Liberty库或任何其他解决方法。

1 个答案:

答案 0 :(得分:1)

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