¿Cómo puedo tener dos servicios web separados con espacio de nombre idéntico y las solicitudes de nombre local se enrutan a diferentes puntos finales?
Estoy intentando crear 2 servicios web separados, ambos dentro de un despliegue de primavera, ambos con los wsdl generados desde los mismos esquemas xsd, pero los tengo enrutados a dos puntos finales separados para que pueda manejar las solicitudes de manera diferente en contextos separados .
Ex:
Servicio web 1: subconjunto de acceso, privilegios más bajos y restricciones de seguridad
Servicio web 2: privilegios superiores
<sws:dynamic-wsdl id="spml-readonly"
portTypeName="SpmlReadOnlyService"
locationUri="SpmlReadOnly">
<sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_core.xsd"/>
</sws:dynamic-wsdl>
<sws:dynamic-wsdl id="spml-crud"
portTypeName="SpmlCrudService"
locationUri="SpmlCrud">
<sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_core.xsd"/>
<sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_search.xsd"/>
<sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_batch.xsd"/>
</sws:dynamic-wsdl>
Ahora, ya que ambos wsdls se basan en el mismo xsds, el "espacio de nombres" y "localPart" de las solicitudes son idénticos, independientemente del servicio web al que esté accediendo (/ SpmlReadOnly o / SpmlCrud).
Por lo tanto, eso es descartar el PayloadRootQNameEndpointMapping desaprobado ya que el LocalPart y el espacio de nombres siguen siendo idénticos, etc.
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "lookupRequest")
@ResponsePayload
public Source handleLookupRequest(SoapMessage message) throws Exception {
...
}
¿Es lo que soy capaz de hacer incluso posible? Si los xsd son compartidos y tienen espacios de nombres idénticos en la raíz del esquema, y las mismas solicitudes del método localPart, ¿habrá alguna vez una manera de distinguirlos y asignarlos a dos puntos finales diferentes? Cualquier información sobre esto sería útil! ¡Espero no tener que configurar dos .wars separados y desplegarlos por separado con sus propias bases de código en un servidor!
Gracias damian