package org.springframework.autobuilds.jpetstore.service.server;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
import org.springframework.autobuilds.jpetstore.domain.Order;
import org.springframework.autobuilds.jpetstore.domain.logic.OrderService;
import org.springframework.autobuilds.jpetstore.service.RemoteOrderService;
/**
* JAX-RPC compliant RemoteOrderService implementation that simply delegates
* to the OrderService implementation in the root web application context.
*
* <p>This wrapper class is necessary because JAX-RPC requires working with
* RMI interfaces. If an existing service needs to be exported, a wrapper that
* extends ServletEndpointSupport for simple application context access is
* the simplest JAX-RPC compliant way.
*
* <p>This is the class registered with the server-side JAX-RPC implementation.
* In the case of Axis, this happens in "server-config.wsdd" respectively via
* deployment calls. The Web Service tool manages the lifecycle of instances
* of this class: A Spring application context can just be accessed here.
*
* @author Juergen Hoeller
* @since 26.12.2003
*/
public class JaxRpcOrderService extends ServletEndpointSupport
implements RemoteOrderService, OrderService {
private OrderService orderService;
protected void onInit() {
this.orderService = (OrderService) getWebApplicationContext().getBean("petStore");
}
public Order getOrder(int orderId) {
return this.orderService.getOrder(orderId);
}
}