WSIT Metro версии 2.3 Ошибка WSRM1124

У нас есть java-приложение, работающее на JVM (IBM jdk, а не Oracle) внутри сервера Tomcat v7 со следующими свойствами

Информация JVM

  • Java-версия: 1.6.0
  • Поставщик Java: корпорация IBM
  • Версия спецификации Java: 1.6
  • Поставщик спецификации Java: Sun Microsystems Inc.
  • Название спецификации Java: Спецификация API платформы Java
  • Версия JVM: 2.4
  • Поставщик JVM: корпорация IBM
  • Имя JVM: ВМ IBM J9
  • Версия спецификации 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=истина
  • -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 для вызова служб .Net SOAP, для которых требуются спецификации WS-Security и Ws-Reliability, и получение этой ошибки

информация о сервисе wsdl

wsdl определяет утверждение RM.

Мне интересно, может ли этот порядковый номер быть старым сообщением, которое сервер уже считает выполненным, но клиент все еще считает, что его необходимо повторно отправить и подтвердить. В этот момент он зависает на этой проблеме, пытаясь завершить сообщение, и никакие другие сообщения не могут быть завершены.

Трассировка исключений

Причина: com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException: WSRM1124: последовательность не зарегистрирована с идентификатором [ 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.cl ient.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(неизвестный источник)

Журналы метро

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 (теги/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: последовательность не зарегистрирована с идентификатором [urn:uuid:7b7df40c-0d0c-49ee-aabd-cd37ec8ce79d]) 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 [вид=THROW,next=null,packet=null,throwable=com.sun.xml.ws.rx.rm.runtime.sequence.UnknownSequenceException: WSRM1124: последовательность не зарегистрирована с идентификатором [ urn: UUID: 7b7df40c-0d0c-49ee-aabd-cd37ec8ce79 г ]]

Мои вопросы

  • В чем основная причина этого, что пытается сделать Metro?
  • Я погуглил эту проблему, и все, что я получил, это то, что мне нужно установить какое-то системное свойство, которое я уже сделал (см. Выше). Кто-нибудь видел это, чтобы помочь мне найти обходной путь? При отслеживании InVmSequenceManager кажется, что UUID отсутствует в карте памяти, поэтому логика выдает исключение, описанное выше. Возможно, одним из решений было бы настроить мой собственный диспетчер последовательностей, однако я не уверен, как это сделать.

Заранее спасибо,


person cheframzi    schedule 19.07.2014    source источник


Ответы (1)


У меня нет опыта в этом, но я рискну и попытаюсь дать ответ, который может привести вас в неправильном направлении (поэтому будьте осторожны). Я надеюсь, что если я ошибаюсь, по крайней мере, я поощрю кого-то еще прийти и помочь вам с вашей проблемой. (Иногда лучший способ получить правильный ответ в Интернете — это опубликовать неправильный ответ, дав более информированному ботанику повод наброситься на него.) Тем не менее…

Я взял часть сообщения об ошибке, которое вы получили, и отправился в Google:

"No sequence registered with id" metro

Вторым ответом, который я получил, была ссылка на очень старую проблему в системе отслеживания ошибок для Glassfish. . Проблема не отслеживала фактическую ошибку, поэтому содержание проблемы не очень информативно. Однако я заметил, что проблема была закрыта как «недействительная» и по определенной причине.

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

Что это мне дает? Мне кажется, что этот византийский безопасный SOAP-материал может привести к сбою с эффектной неинформативностью, если вам не хватает аннотация @Policy, указывающая на действительный XML-файл WS-Policy, содержащий вышеупомянутое RMAssertion.

Итак… у меня к вам вопрос: настроено ли у вас RMAssertion на этом сервисе?

Редактировать: оказалось, что у них определено RMAssertion, но я оставлю этот «ответ» здесь для потомков.

person pohl    schedule 20.07.2014
comment
Спасибо за помощь, я боюсь, что раздел RMAssertion есть в WSDL. Так что я думаю, что основная причина в чем-то другом. - person cheframzi; 21.07.2014