2009-07-20 14 views
9

Spring-WS, bağlama etiketinde WSDL üretmeden üretir ... Biliyor musunuz?Spring-WS, operasyon olmadan WSDL üretir

benim bahar-ws-service.xml yok:

<import resource="classpath*:application-context.xml" /> 

    <!-- Register PayloadRootAnnotationMethodEndpointMapping --> 
    <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping" /> 

    <!-- Register Endpoint --> 
    <bean id="tasktablerServiceEndpoint" class="tasktabler.mpk.service.TasktablerServiceEndpoint" /> 

    <!-- Configure XML Marshaller --> 
    <bean class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter"> 
     <constructor-arg ref="marshaller" /> 
    </bean> 

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
     <property name="classesToBeBound"> 
      <list> 
       <value>tasktabler.mpk.databinding.OptimizeRequest</value> 
      </list> 
     </property> 
    </bean> 

    <!-- Add automatic WSDL generation support --> 
    <bean id="tasktabler" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition"> 
     <property name="schema" ref="schema" /> 
     <property name="portTypeName" value="tasktabler" /> 
     <property name="locationUri" value="http://localhost:8080/tasktabler" /> 
     <property name="targetNamespace" value="http://tasktabler" /> 
    </bean> 

    <bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema"> 
     <property name="xsd" value="/WEB-INF/schema.xsd" /> 
    </bean> 

Ve WSDL bağlayıcı bir parçası wsdl vardır: önceden

<wsdl:binding name="tasktablerSoap11" type="tns:tasktabler"> 
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
    </wsdl:binding> 

sayesinde Etam.

+0

Üretilen WSDL'yi ekleyebilir misiniz? –

cevap

26

DefaultWsdl11Defination, şemanızdaki türleri inceleyerek WSDL'yi otomatik olarak oluşturmaya çalışır. Şemanınız beklenen modellerine uymuyorsa, iyi bir iş yapmaz. the documentation itibaren

:

bir XSD şeması Bir WSDL oluşturur DefaultWsdl11Definition. Bu tanım, şemada bulunan tüm öğe öğelerinde yinelenir ve , tüm öğeler için bir ileti oluşturur. Sonraki, için tanımlanan istek veya yanıt sonekiyle sonlanan tüm iletiler için WSDL işlemi oluşturur. varsayılan istek sonek İsteğidir; varsayılan yanıt eki, Yanıt, olsa da, bunlar sırasıyla requestSuffix ve responseSuffix özelliklerini ayarlayarak değiştirilebilir. Ayrıca , işlemlere dayalı bir portType, ciltleme ve hizmeti oluşturur. Örneğin

, bizim Orders.xsd şema GetOrdersRequest ve GetOrdersResponse elemanları, XsdBasedSoap11Wsdl4jDefinitionBuilder tanımlıyorsa bir Siparişler liman tip konur bir GetOrdersRequest ve GetOrdersResponse mesajı ve bir GetOrders operasyonu, yaratacak .

+0

Teşekkürler! Şimdi çalışıyor :). – Etam

+0

"requestSuffix" ve "responseSuffix" ifadelerini kullandığınız için teşekkür ederiz. –