【问题标题】:WSIT Metro version 2.3 WSRM1124 errorWSIT Metro 版本 2.3 WSRM1124 错误
【发布时间】:2014-07-19 21:05:16
【问题描述】:

我们有一个 Java 应用程序在 Tomcat v7 服务器内的 JVM(IBM jdk 而不是 Oracle)上运行,具有以下属性

JVM 信息

  • Java 版本:1.6.0
  • Java 供应商:IBM 公司
  • Java 规范版本:1.6
  • Java 规范供应商:Sun Microsystems Inc.
  • Java 规范名称:Java 平台 API 规范
  • JVM 版本:2.4
  • JVM 供应商:IBM Corporation
  • JVM 名称:IBM J9 VM
  • JVM 规范版本:1.0
  • JVM 规范供应商:Sun Microsystems Inc.
  • JVM 规范名称:Java 虚拟机规范
  • JVM 管理规范版本:1.0
  • Java 编译器:j9jit24
  • Java 类格式版本:50.0

相关系统属性

  • -Dsun.nio.ch.disableSystemWideOverlappingFileLockCheck=true
  • -Doracle.net.ssl_version=3
  • -Djavax.xml.stream.XMLInputFactory=com.ibm.xml.xlxp.api.stax.XMLInputFactoryImpl
  • -Djavax.xml.stream.XMLOutputFactory=com.ibm.xml.xlxp.api.stax.XMLOutputFactoryImpl
  • -Djavax.xml.stream.XMLEventFactory=com.ibm.xml.xlxp.api.stax.XMLEventFactoryImpl
  • -Djava.awt.headless=true
  • -Dfile.encoding=UTF-8
  • -Dcom.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace=false
  • -Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true

使用 Metro(带有 WSIT)2.3 版调用需要 WS-Security 和 Ws-Reliability 规范的 .Net SOAP 服务并收到此错误

关于服务的 wsdl 的信息

wsdl 定义了 RM 断言。

我想知道这个序列号是否可能是服务器已经认为已经完成的旧消息,但客户端仍然认为它需要重新提交和确认。此时它挂在这个问题上试图完成消息并且没有其他消息可以完成

异常跟踪

原因:com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException: WSRM1124: No sequence registered with id [urn:uuid:7b7df40c-0d0c-49ee-aabd-cd37ec8ce79d] 在 com.sun.xml.ws.rx.rm.runtime.sequence.invm.InVmSequenceManager.getSequence(InVmSequenceManager.java:307) 在 com.sun.xml.ws.rx.rm.runtime.sequence.invm.InVmSequenceManager.getOutboundSequence(InVmSequenceManager.java:339) 在 com.sun.xml.ws.rx.rm.runtime.SourceMessageHandler.registerMessage(SourceMessageHandler.java:87) 在 com.sun.xml.ws.rx.rm.runtime.ClientTube.processRequest(ClientTube.java:191) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019) 在 com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877) 在 com.sun.xml.ws.client.Stub.process(Stub.java:464) 在 com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:174) 在 com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108) 在 com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:91) 在 com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:154) 在 com.sun.proxy.$Proxy85.get(Unknown Source)

地铁日志

Jul-19-2014 15:22:26.581 (ajp-bio-8009-exec-4:28) FINER [com.sun.xml.ws.api.pipe.Fiber___doRun] engine-Metro/2.3 (tags/ 2.3-7528; 2013-04-29T19:34:10+0000) JAXWS-RI/2.2.8 JAXWS/2.2 svn-revision#unknown: SomeURL fiber-18 com.sun.xml.ws.handler.ClientLogicalHandlerTube@的存根1dbb1dbb.processException(com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException:WSRM1124:没有使用 id [urn:uuid:7b7df40c-0d0c-49ee-aabd-cd37ec8ce79d] 注册的序列) 2014 年 7 月 19 日 15:22:26.581 (ajp-bio-8009-exec-4:28) FINER [com.sun.xml.ws.api.pipe.Fiber___doRun] engine-Metro/2.3 (tags/2.3-7528 ; 2013-04-29T19:34:10+0000) JAXWS-RI/2.2.8 JAXWS/2.2 svn-revision#unknown: SomeURl fiber-18 com.sun.xml.ws.handler.ClientLogicalHandlerTube@1dbb1dbb 的存根返回com.sun.xml.ws.api.pipe.NextAction@78467846 [kind=THROW,next=null,packet=null,throwable=com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException: WSRM1124:没有使用 id [ urn:uuid:7b7df40c-0d0c-49ee-aabd-cd37ec8ce79d ]] 注册的序列

我的问题

  • 造成这种情况的根本原因是什么,Metro 想要做什么?
  • 我用谷歌搜索了这个问题,我得到的只是我需要设置一些我已经做过的系统属性(见上文)。有没有人看到这个来指导我解决问题?在跟踪 InVmSequenceManager 似乎 UUID 不在内存映射中,因此逻辑抛出了上面的异常。也许一种解决方案是配置我自己的序列管理器,但我不知道该怎么做。

提前致谢,

【问题讨论】:

    标签: java web-services java-metro-framework wsit


    【解决方案1】:

    我没有这方面的经验,但我会冒险尝试一个可能会导致你走错方向的答案(所以告诫自己)。我的希望是,如果我离基地很远,至少我会鼓励其他人进来帮助你解决问题。 (有时,在互联网上获得正确答案的最佳方式是发布错误答案,让更见多识广的书呆子有所收获。)也就是说……

    我收到了您收到的错误消息的一部分并转到了 Google:

    "No sequence registered with id" metro
    

    我收到的第二次点击是 Glassfish 的错误跟踪器中指向 a very old issue 的链接。该问题没有跟踪实际的错误,因此该问题的内容不是很丰富。但是,我确实注意到该问题被关闭为“无效”,并且出于特定原因。

    Invalid Issue. Client wsdl did not have RMAssertion on it.
    

    那么这对我有什么建议?它向我表明,当您缺少 a @Policy annotation that points to a valid WS-Policy XML file containing the aforementioned RMAssertion 时,这种拜占庭式安全 SOAP 内容可能会以极其无信息的方式失败。

    所以……我的问题是:您是否在此服务上设置了 RMAssertion?

    编辑:事实证明他们确实定义了 RMAssertion,但我将把这个“答案”留给后代。

    【讨论】:

    • 感谢您的帮助,恐怕 RMAssertion 部分在 WSDL 中。所以我认为根本原因是别的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多