2010-01-28 8 views
1

Я использую soapUI для тестирования некоторых WebServices.Устранение неполадок Схема ответа WS

В MockService доступны в SoapUI я получаю ответ это значение по умолчанию

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://www.someurl.com/schemas"> 
     <soapenv:Header/> 
     <soapenv:Body> 
      <sch:Response> 
       <sch:Something>?</sch:Something> 
      </sch:Response> 
     </soapenv:Body> 
    </soapenv:Envelope> 

Когда реальный Webservice называется я не получаю Xmlns: СЧ = «http://www.someurl.com/schemas» и элементы внутри ответа не имеют префикс 'sch'. Вот что я получаю:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
      <soapenv:Header/> 
      <soapenv:Body> 
       <Response> 
        <Something>something</Something> 
       </Response> 
      </soapenv:Body> 
     </soapenv:Envelope> 

Я использую Java с spring-ws. И использование Castor для marshall xml для Java Object.

Как включить схему в ответ?

EDIT: Добавление сведений о конфигурации.

MyApplication-servlet.xml подобно этому

<bean id="payloadMapping" 
     class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> 
     <property name="endpointMap"> 
      <map> 
       <entry 
        key="{http://www.someurl.com/schemas}MyRequest" 
        value-ref="myEndpoint"/>     
      </map> 
     </property> 
    </bean> 

<bean id="myEndpoint" 
     class="foo.bar.myEndpoint"> 
     <constructor-arg ref="messageSource" /> 
     <property name="marshaller" ref="marshaller" /> 
     <property name="unmarshaller" ref="marshaller" /> 
    </bean> 

<bean id="myWsdlDefinition" 
     class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition"> 
     <property name="schema"> 
      <bean class="org.springframework.xml.xsd.SimpleXsdSchema"> 
       <property name="xsd" value="/MyXsd.xsd" /> 
      </bean> 
     </property> 
     <property name="portTypeName" value="myPortTypeName" /> 
     <property name="locationUri" value="http://anotherUrl:8080/services" /> 
    </bean> 

<bean id="marshaller" class="org.springframework.oxm.castor.CastorMarshaller"> 
     <property name="mappingLocation" value="classpath:mapping.xml" /> 
    </bean> 

<bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource"> 
     <property name="basename" value="errors" /> 
    </bean> 
+0

Мы не можем сказать вам, почему Spring-WS был неправильно настроены, если вы не даете нам информации о вашем установке – skaffman

+0

@skaffman вопроса отредактированного –

ответ

1

В файле отображения я должен поставить Ns-префикс в карте-к элементу.

<map-to xml="Response" ns-prefix="sch" /> 
+0

Вы можете разместить, как ваш конфигурационный файл выглядит сейчас, пожалуйста? – Chepech