【问题标题】:A resource reference binding could not be found找不到资源引用绑定
【发布时间】:2013-12-27 09:22:03
【问题描述】:

目前我尝试将 Web 服务系统从 Websphere 6 升级到 Websphere 8.5。 但是我遇到了这种问题

CWNEN0044E: 找不到为组件定义的 /wsContext 资源引用的资源引用绑定。

在源码里面,那部分只包含

@资源 WebServiceContext wsContext;

如果我将类加载器策略从 parent last 切换到 parent first,则此错误将消失。 但是,你知道有什么办法可以避免“parent last”出现这个错误吗?

【问题讨论】:

    标签: java web-services websphere-8


    【解决方案1】:

    您的应用程序必须包含一个带有 WebServiceContext 类的 JAR,这会阻止服务器将此类型识别为“内置”对象以供其注入,因为您使用的是“最后一个父对象”。如果您必须使用“parent last”,那么您的选择是:

    1. 从您的应用程序中删除包含 WebServiceContext 的 JAR。此选项假定您需要“最后一个父级”才能覆盖服务器中的其他一些类,而不是 Web 服务类。

    2. 删除@Resource 注释。此选项假定您正在尝试覆盖 Web 服务实现。在这种情况下,你不能依赖容器注入。

    【讨论】:

    • 谢谢,但是 WebServiceContext 在 jaxws-api.jar 文件中,这个 jar 不能被删除,因为它包含许多重要的类。
    • 这些类/接口都应该由应用服务器提供。为什么需要覆盖它们?
    • 我试图删除所有 jaxws-api.jar jar 文件并抛出新异常:java.lang.VerifyError: JVMVRFY013 违反类加载约束; class=com/sun/xml/ws/server/AbstractWebServiceContext, method=getEndpointReference([Lorg/w3c/dom/Element;)Ljavax/xml/ws/EndpointReference;, pc=0
    • 这可能意味着您现在有一个“不完整”的覆盖。例如,由于您不再覆盖 javax.xml.ws,因此您现在加载了 org.w3c 之类的其他内容两次(一次通过 javax.xml.ws 从服务器加载,另一次从应用程序中的某个 API JAR 加载)。我建议从您的应用程序中删除所有 API JAR。
    猜你喜欢
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2014-01-01
    相关资源
    最近更新 更多