【发布时间】: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