WSIT Metro版本2.3 WSRM1124错误

che*_*mzi 5 java web-services java-metro-framework wsit

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

JVM信息

  • Java版本:1.6.0
  • Java供应商:IBM Corporation
  • 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 =真
  • -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 =真
  • -Dfile.encoding = UTF-8
  • -Dcom.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace = FALSE
  • -Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump =真

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

有关服务的wsdl的信息

wsdl定义RM断言.

我想知道这个序列号是否可能是服务器已经认为已完成的旧消息,但客户端仍然认为需要重新提交并确认.此时,它会在尝试完成此消息时遇到此问题,并且无法完成其他任何消息

异常跟踪

引起:com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException:WSRM1124:在com.sun.xml中没有使用id [urn:uuid:7b7df40c-0d0c-49ee-aabd-cd37ec8ce79d]注册的序列. ws.rx.rm.runtime.sequence.invm.InVmSequenceManager.getSequence(InVmSequenceManager.java:307)at 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)at com.sun.xml.ws.rx.rm.runtime.ClientTube.processRequest(ClientTube.java:191) )com.sun.xml.ws.api.pipe.Fiber .__ doRun(Fiber.java:1136)at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)at com. sun.com.ws.api.pipe.Fiber.doRun(Fiber.java:1019)位于com.sun.xml的com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877).位于com.sun.xml.ws.client.sei的com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:174)中的ws.client.Stub.process(Stub.java:464).在c处的SyncMethodHandler.invoke(SyncMethodHandler.java:108)om.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:91)位于com.sun的com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:154).代理.$ Proxy85.get(未知来源)

地铁日志

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:Stub for 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]注册的序列)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:使用com.sun.xml.ws返回的SomeURl fiber-18 com.sun.xml.ws.handler.ClientLogicalHandlerTube@1dbb1dbb的存根. 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不在内存映射中,因此逻辑抛出上面的异常.也许一个解决方案是配置我自己的序列管理器,但我不知道如何做到这一点.

提前致谢,

poh*_*ohl 2

我对此没有任何经验,但我将冒险尝试一个可能会引导您走向错误方向的答案(所以买者自负)。我的希望是,如果我偏离了基地,至少我会鼓励其他人进来帮助你解决问题。(有时,在互联网上获得正确答案的最佳方法是发布错误答案,为更有见识的书呆子提供一些可以抓住的东西。)也就是说\xe2\x80\xa6

\n\n

我把你收到的错误消息的一部分转到了Google:

\n\n
"No sequence registered with id" metro\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到的第二个点击是Glassfish 错误跟踪器中一个非常古老的问题的链接。该问题没有跟踪实际的错误,因此该问题的内容不是很丰富。然而,我确实注意到该问题被关闭为“无效”,并且出于特定原因。

\n\n
Invalid Issue. Client wsdl did not have RMAssertion on it.\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么这对我来说意味着什么呢?它向我表明,当您缺少指向包含上述 RMAssertion 的有效 WS-Policy XML 文件的 @Policy 注释时,这种拜占庭式安全 SOAP 内容可能会以极其缺乏信息的方式失败。

\n\n

所以\xe2\x80\xa6我向你提出的问题是:你是否在该服务上设置了RMAssertion?

\n\n

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

\n