Publishing a Service on the Kuali Service Bus
Service Messages
Request
<ServiceRequest xmlns="http://sampleservice.ucdavis.du/ws/schemas">
<criteria>
<Service>Sample Service</Service>
<Location>Kuali Service Bus</Location>
</criteria>
</ServiceRequest>
Response
<ServiceResponse xmlns="http://sampleservice.ucdavis.du/ws/schemas">
<Hello>Sample Service</Hello>
<World>Kuali Service Bus</World>
</ServiceResponse>
End Point
{http://sampleservice.ucdavis.edu/sampleService}ServiceRequest
Spring Configuration
Given you have some service:
<bean id="myParticularService" class="edu.ucdavis.myapp.service.impl.MyParticularServiceImpl" />
Declare the Service Definition
<bean id="sampleService" class="org.kuali.rice.ksb.messaging.JavaServiceDefinition" abstract="true">
<property name="serviceNameSpaceURI" value="SAMPLEKSBSVC" />
<property name="retryAttempts" value="0" />
</bean>
Inject the Service Definition into the KSB Exporter
<bean class="org.kuali.rice.ksb.messaging.KSBExporter">
<property name="remotedServiceRegistry" ref="enServiceInvoker"/>
<property name="serviceDefinition">
<bean parent="sampleService"
p:service-ref="myParticularService"
p:localServiceName="myParticularService" />
</property>
</bean>
Optionally, you can expose the service as a SOAP service
<bean id="sampleSoapService" class="org.kuali.rice.ksb.messaging.SOAPServiceDefinition" abstract="true">
<property name="serviceNameSpaceURI" value="SAMPLEKSBSVC"/>
<property name="jaxWsService" value="false"/>
<property name="priority" value="3" />
<property name="retryAttempts" value="0" />
<property name="busSecurity" value="true"/>
</bean>
<bean class="org.kuali.rice.ksb.messaging.PropertyConditionalKSBExporter">
<property name="remotedServiceRegistry" ref="enServiceInvoker"/>
<property name="serviceDefinition">
<bean parent="sampleSoapService"
p:service-ref="myParticularService"
p:localServiceName="myParticularServiceSOAP" />
</property>
<property name="propertyName" value="myParticularServiceSOAP.expose"/>
</bean>
, multiple selections available,