Hi,
I tried to use XPathExtension like described on I21's blog, but I have problem with mapping endpoint to requests.
I have an endpoint (changeUserPasswordXPathEndpoint) and XPathEpression (changeUserPasswordXPathEndpoint) similar to those already mentioned and tried with PayloadRootQNameEndpointMapping:
xsd looks like:Code:<bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> <property name="mappings"> <props> <prop key="{http://www.myname.org/schemas}ChangeUserPasswordRequest">changeUserPasswordXPathEndpoint</prop> </props> </property> <property name="interceptors"> <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/> </property> </bean> <bean id="changeUserPasswordExpression" class="org.springframework.xml.xpath.XPathExpressionFactoryBean"> <property name="namespaces" value="http://www.myname.org/schemas"/> <property name="expression" value="/ChangeUserPasswordRequest/Username"/> </bean> <bean id="changeUserPasswordXPathEndpoint" class="org.myname.proj.webservice.ChangeUserPasswordXPathEndpoint"> <constructor-arg ref="changeUserPasswordExpression"/> </bean>
On incoming request Endpoint is called, but given element is null.Code:<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.myname.org/schemas" xmlns:ss="http://www.myname.org/schemas"> <xs:element name="ChangeUserPasswordRequest"> <xs:complexType> <xs:all> <xs:element name="Username" type="xsd:string"/> <xs:element name="OldPassword" type="xsd:string"/> <xs:element name="NewPassword" type="xsd:string"/> </xs:all> </xs:complexType> </xs:element> </xs:schema>
I'm just stating with spring-ws, so maybe it's a trivial question, but how can I map XPathEndpoint to that request?
Regards
Marcin


Reply With Quote