Primavera-WS genera WSDL sin operaciones
-
18-09-2019 - |
Pregunta
Primavera-WS genera WSDL sin operaciones en la etiqueta de la unión ... ¿Sabe por qué?
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.
Solución
Los intentos DefaultWsdl11Definition a generar automáticamente el WSDL mediante el examen de los tipos en su esquema. Si el esquema no se ajusta a sus patrones esperados, no va a hacer un buen trabajo de ella.
El DefaultWsdl11Definition que construye un WSDL de un esquema XSD. Esta itera definición por todo elemento elementos que se encuentran en el esquema, y crea un mensaje para todos los elementos. A continuación, se crea la operación WSDL para todos los mensajes que terminan con el definido solicitud o sufijo respuesta. los solicitudes por defecto es el sufijo de solicitud; el sufijo respuesta predeterminada es la respuesta, aunque estos se pueden cambiar mediante el establecimiento la requestSuffix y responseSuffix propiedades, respectivamente. También construye una portType, encuadernación y servicio en base a las operaciones.
Por ejemplo, si nuestro esquema Orders.xsd define el GetOrdersRequest y elementos GetOrdersResponse, la XsdBasedSoap11Wsdl4jDefinitionBuilder creará un GetOrdersRequest y GetOrdersResponse mensaje, y una GetOrders operación, que se pone en una tipo de puerto Órdenes.