我们有一个在 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=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 (with WSIT) version 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) 在 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:1050) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136) 在 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)
地铁日志
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.processException 的存根(com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException: WSRM1124: No sequence registered with 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: 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 不在内存映射中,因此逻辑抛出了上面的异常。也许一种解决方案是配置我自己的序列管理器,但我不知道该怎么做。
提前致谢,