domain:
public class Account implements Serializable{ private static final long serialVersionUID = 9020521114209538117L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }
AccountService
public interface AccountService { public void insertAccount(Account account); public List<Account> getAccounts(String name); }
AccountServiceImpl
public class AccountServiceImpl implements AccountService { public List<Account> getAccounts(String name) { // TODO Auto-generated method stub return null; } public void insertAccount(Account account) { System.out.println("insert Account......"); } }
Exposing the service object:
accountService-servlet.xml
放在WEB-INF下
<bean id="httpservice" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="accountService"></property> <property name="serviceInterface" value="com.lmning.AccountService"></property> </bean> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/account.service">httpservice</prop> </props> </property> </bean>
In addition, define a corresponding servlet for this exporter in 'web.xml', with the servlet name matching the bean name of the target exporter:
web.xml
<servlet> <servlet-name>accountService</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>accountService</servlet-name> <url-pattern>*.service</url-pattern> </servlet-mapping>
客户端xml
bean.xml
<bean id="serverAccountService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> <property name="serviceUrl" value="http://localhost:8081/spring-rmi-webservice/account.service"/> <property name="serviceInterface" value="com.lmning.AccountService"/>
client应用程序:
*/ public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); AccountService service = (AccountService)ctx.getBean("serverAccountService"); service.insertAccount(null); }
运行,ok!