Hi Arjen,
Thanx for the reply. I have recently taken part in A Spring Web Service Taining course run by Russ Miles, which was really worth while, but didn't cover this specific topic. Your help is much apprieciated.
taxonomy-servlet-config:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean
class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
<property name="defaultEndpoint" ref="taxonomyEndpoint" />
</bean>
<bean id="animalTaxonomy"
class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition">
<property name="builder">
<bean
class="org.springframework.ws.wsdl.wsdl11.builder.XsdBasedSoap11Wsdl4jDefinitionBuilder">
<property name="schema"
value="/WEB-INF/schemas/taxonomy-service.xsd" />
<property name="portTypeName" value="Taxonomy" />
<property name="locationUri"
value="http://localhost:8080/ContentService/taxonomy" />
</bean>
</property>
</bean>
<bean id="taxonomyEndpoint"
class="uk.org.rspca.ws.cms.TaxonomyEndpoint">
<constructor-arg ref="taxonomy" />
<property name="marshaller"><ref bean="xmlbeansMarshaller"/></property>
<property name="unmarshaller"><ref bean="xmlbeansMarshaller"/></property>
</bean>
<bean id="xmlbeansMarshaller"
class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller" />
<bean class="org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointAdapter">
<property name="marshaller" ref="xmlbeansMarshaller" />
<property name="unmarshaller" ref="xmlbeansMarshaller" />
</bean>
</beans>
TaxonomyEndpoint.java
Code:
package uk.org.rspca.ws.cms;
import java.util.Iterator;
import org.springframework.util.xml.DomUtils;
import org.springframework.ws.server.endpoint.AbstractDomPayloadEndpoint;
import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import uk.org.rspca.cms.Taxonomy;
import uk.org.rspca.cms.TaxonomyEngine;
import uk.org.rspca.schemas.type.taxonomy.AnimalTaxonomyRequestDocument;
import uk.org.rspca.schemas.type.taxonomy.AnimalTaxonomyResponseDocument;
import uk.org.rspca.schemas.type.taxonomy.TaxonomyType;
import uk.org.rspca.schemas.type.taxonomy.AnimalTaxonomyRequestDocument.AnimalTaxonomyRequest;
import uk.org.rspca.schemas.type.taxonomy.AnimalTaxonomyResponseDocument.AnimalTaxonomyResponse;
import uk.org.rspca.schemas.type.taxonomy.impl.AnimalTaxonomyRequestDocumentImpl;
import uk.org.rspca.schemas.type.taxonomy.impl.AnimalTaxonomyResponseDocumentImpl;
import uk.org.rspca.schemas.type.taxonomy.impl.AnimalTaxonomyResponseDocumentImpl.AnimalTaxonomyResponseImpl;
public class TaxonomyEndpoint extends AbstractMarshallingPayloadEndpoint {
private TaxonomyEngine taxonomyEngine;
private static final String NAMESPACE_URI = "http://www.rspca.org.uk/schemas/type/taxonomy";
public TaxonomyEndpoint() {
// TODO Auto-generated constructor stub
}
public TaxonomyEndpoint(TaxonomyEngine tEngine) {
this.taxonomyEngine = tEngine;
}
@Override
protected Object invokeInternal(Object request) throws Exception {
AnimalTaxonomyRequestDocument doc = (AnimalTaxonomyRequestDocument)request;
System.out.println(doc.getAnimalTaxonomyRequest().getFilter());
// Process Data based on filter
// Populate AnimalTaxonomyResponseObject
return AnimalTaxonomyResponseDocument.Factory.newInstance();
}
Thanx
mARK