2009-07-20 30 views
9

Spring-WS genera WSDL sin operaciones en la etiqueta de enlace ... ¿Sabe por qué?Spring-WS genera WSDL sin operaciones

No es mi primavera-ws-service.xml:

<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> 

Y no es parte de la unión WSDL WSDL:

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

Gracias de antemano, Etam.

+0

¿Podría agregar el WSDL generado? –

Respuesta

26

DefaultWsdl11Definition intenta generar automáticamente el WSDL examinando los tipos en su esquema. Si su esquema no se ajusta a sus patrones esperados, no lo hará bien.

De the documentation:

El DefaultWsdl11Definition cuales construye un WSDL de un esquema XSD. Esta definición de itera sobre todos los elementos del elemento que se encuentran en el esquema, y ​​ crea un mensaje para todos los elementos. A continuación, crea la operación WSDL para todos los mensajes que finalizan con el sufijo de solicitud o respuesta definido. El sufijo de solicitud predeterminado es Solicitud; el sufijo de respuesta predeterminado es Respuesta, aunque estos se pueden cambiar configurando las propiedades requestSuffix y responseSuffix , respectivamente. También crea un portType, vinculante y un servicio basado en las operaciones.

Por ejemplo, si nuestro esquema Orders.xsd define el GetOrdersRequest y elementos GetOrdersResponse, la XsdBasedSoap11Wsdl4jDefinitionBuilder creará un GetOrdersRequest y mensaje GetOrdersResponse, y una operación de GetOrders, que se pone en un tipo de puerto Órdenes .

+0

¡Gracias! Ahora funciona :). – Etam

+0

Gracias por mencionar 'requestSuffix' y' responseSuffix' –

Cuestiones relacionadas