2016-08-03 2 views
0

Я вроде как новичок в этой работе Jmeter, и я пытаюсь сделать простой запрос SOAP/XML-RPC на Jmeter. Я использую пример кода, который я нашел в Интернете, который, кажется, работает очень хорошо (по крайней мере, с помощью Wizlet в Chrome, похоже, не было проблемы), но когда я использую запрос на мыло, который генерирует подключаемый модуль на элемент в Jmeter ... Ну, это другая история. Если бы кто-нибудь мог сказать мне, что проблема была бы потрясающей.Проблемы с запросом SOAP/XML-RPC от Jmeter

Это код WSDL:

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://jee.javapapers.com" xmlns:intf="http://jee.javapapers.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://jee.javapapers.com"> 
<!-- 
WSDL created by Apache Axis version: 1.4 
Built on Apr 22, 2006 (06:55:48 PDT) 
--> 
<wsdl:types> 
    <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://jee.javapapers.com"> 
     <element name="animalType"> 
      <complexType> 
       <sequence> 
        <element name="animal" type="xsd:string"/> 
       </sequence> 
      </complexType> 
     </element> 
     <element name="animalTypeResponse"> 
      <complexType> 
       <sequence> 
        <element name="animalTypeReturn" type="xsd:string"/> 
       </sequence> 
      </complexType> 
     </element> 
    </schema> 
</wsdl:types> 
<wsdl:message name="animalTypeResponse"> 
    <wsdl:part element="impl:animalTypeResponse" name="parameters"/> 
</wsdl:message> 
<wsdl:message name="animalTypeRequest"> 
    <wsdl:part element="impl:animalType" name="parameters"/> 
</wsdl:message> 
<wsdl:portType name="AnimalTypeService"> 
    <wsdl:operation name="animalType"> 
     <wsdl:input message="impl:animalTypeRequest" name="animalTypeRequest"/> 
     <wsdl:output message="impl:animalTypeResponse" name="animalTypeResponse"/> 
    </wsdl:operation> 
</wsdl:portType> 
<wsdl:binding name="AnimalTypeServiceSoapBinding" type="impl:AnimalTypeService"> 
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
    <wsdl:operation name="animalType"> 
     <wsdlsoap:operation soapAction=""/> 
     <wsdl:input name="animalTypeRequest"> 
      <wsdlsoap:body use="literal"/> 
     </wsdl:input> 
     <wsdl:output name="animalTypeResponse"> 
      <wsdlsoap:body use="literal"/> 
     </wsdl:output> 
    </wsdl:operation> 
</wsdl:binding> 
<wsdl:service name="AnimalTypeServiceService"> 
    <wsdl:port binding="impl:AnimalTypeServiceSoapBinding" name="AnimalTypeService"> 
     <wsdlsoap:address location="http://localhost:8082/WebServicesAnimals/services/AnimalTypeService"/> 
    </wsdl:port> 
</wsdl:service> 
</wsdl:definitions> 

И это запрос я шлю и ошибка ответа.

URL: http://localhost:8082/WebServicesAnimals/services/AnimalTypeService?WSDL

ТЕЛО:

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Body> 
     <animalType xmlns="http://jee.javapapers.com"> 
      <animal>Lion</animal> 
     </animalType> 
    </soapenv:Body> 
</soapenv:Envelope> 

Ответ:

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
    <soapenv:Fault> 
    <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode> 
    <faultstring>no SOAPAction header!</faultstring> 
    <detail> 
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">WBFINF05</ns2:hostname> 
    </detail> 
    </soapenv:Fault> 
</soapenv:Body> 
</soapenv:Envelope> 

ответ

0

Я вижу, по крайней мере, 2 проблемы:

  • Почему вы посылаете свой запрос к URL-адрес, заканчивающийся на: WSDL, yo и должны использовать:

http://localhost:8082/WebServicesAnimals/services/AnimalTypeService

  • Ошибка говорит, что вы не имеете SOAPAction. Если вы подтвердите, что вы не установили его, добавьте менеджер заголовка и установить SOAPAction на «»

Наконец, вы должны использовать обычный HTTP-запрос вместо SOAP/XML-RPC запрос, как в этом учебнике:

Смежные вопросы