Используйте ReadyAPI для отправки сообщения JMS без имени для ответа - PullRequest
0 голосов
/ 28 ноября 2018

Я хотел бы отправить сообщение JMS, используя ReadyAPI, используя принцип «Запусти и забудь».

Таким образом, URL-адрес JMS-запроса, который я использую, равен readyjms://ems::mydestination, но при отправке запроса я получаю ОШИБКУ:

Wed Nov 28 11:47:29 CET 2018: INFO: Creating JmsConnection using manual configuration #ManualJmsConfiguration properties#Wed Nov 28 11:47:29 CET 2018 connectionFactoryJndiName=ConnectionFactory receiveDestinationJndiName=- password= sendDestinationJndiName=manualdestinationurl providerUrl=tcp\://localhost\:7222 initialContextFactoryClass=com.tibco.tibjms.naming.TibjmsInitialContextFactory userName=admin connectorLabel=EMS, additional properties: {}
Wed Nov 28 11:47:29 CET 2018: ERROR: An error occurred [Name not found: '-'], see error log for details
Wed Nov 28 11:47:29 CET 2018: ERROR: An error occurred [The JNDI name was not found: Name not found: '-'. Make sure the specified name is correct and additional JNDI properties are specified.], see error log for details
Wed Nov 28 11:47:29 CET 2018: INFO: Error getting response for [EmsBaseServiceBinding.emsBase:JMS Request]; null

И когда я предоставляю URL-адрес ответа, подобный этому readyjms://ems::mydestination::mydestination, я получаю сообщение, которое отправляю.

Я также не определил ответ в WSDL

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="EmsBase_v1_0" targetNamespace="http://www.mycompany.com/bw/wsdl/EmsBase/1" xmlns:jms="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.mycompany.com/bw/wsdl/EmsBase/1" xmlns:tns0="http://www.mycompany.com/bw/wsdl/EmsBase/1.0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.mycompany.com/bw/wsdl/EmsBase/1.0" xmlns="http://www.brabantia.com/bw/wsdl/EmsBase/1.0">
      <xsd:element name="emsBase">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="base" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="emsBase">
    <wsdl:part element="tns0:emsBase" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="EmsBase_v1_0">
    <wsdl:operation name="emsBase">
      <wsdl:input message="tns:emsBase" name="emsBase"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="EmsBaseServiceBinding" type="tns:EmsBase_v1_0">
    <soap:binding style="document" transport="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS"/>
    <jms:binding messageFormat="bytes"/>
    <wsdl:operation name="emsBase">
      <soap:operation soapAction="emsBase" style="document"/>
      <wsdl:input>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="EmsBase_v1_0">
    <wsdl:port binding="tns:EmsBaseServiceBinding" name="EmsBase_v1_0SOAP">
      <soap:address location=""/>
      <jms:connectionFactory/>
      <jms:targetAddress destination="queue">dev.1.ps.q.test.app_in</jms:targetAddress>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Так как я могу отправить сообщение JMS, не ожидая ответа?

...