spring httpinvoke使用
1 实体,必须序列化
public class UcServiceEntity implements Serializable{ /** * @Fields serialVersionUID : TODO */ private static final long serialVersionUID = 1L; private String name; private String age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
2 服务端与客户端的接口
package com.mainbo.u3.service; import java.util.Map; public interface UcService { public String getUserInfobyName(String userName); public int recordLog(String username, String point, String operate, String desc); public Map getUserInfobyName(Map userMap); public UcServiceEntity getUserInfobyName(UcServiceEntity entity); }
3 服务端接口实现
@Service("ucService") public class UCServiceImpl implements UcService { private static Logger pointrecordlog = Logger.getLogger("pointrecordlog"); private static Logger logger = Logger.getLogger(UCServiceImpl.class); public String getUserInfobyName(String userName) { return userName+"12" ; } public int recordLog(String username, String point, String operate, String desc) { int result = 0; try { pointrecordlog.info(username + " - " + point + " - " + operate + " - " + desc); } catch (Throwable t) { result = -1; logger.error(t); } return result; } @Override public Map getUserInfobyName(Map userMap) { System.out.println( userMap); Map map = new HashMap(); map.put("userName", "王战涛"); return map; } @Override public UcServiceEntity getUserInfobyName(UcServiceEntity entity) { System.out.println( entity.getName()); entity.setName("getUserInfobyName"); return entity; } }
4 映射mapping ,在springmvc 的配置文件中*-servlet.xml中
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/httpService">httpService</prop> </props> </property> </bean>
5 ApplicationContext.xml中配置HttpInvoker
<bean id="httpService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service"> <ref bean="ucService" /> </property> <property name="serviceInterface" value=" com.mainbo.u3.service.UcService"> </property> </bean>
6 web.xml中暴漏接口
<servlet> <servlet-name>u3</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>u3</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping>
7 客户端配置ApplicationContext.xml ,暴漏访问url
<bean id="httpService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> <property name="serviceUrl" value="http://localhost:80/service/httpService" /> <property name="serviceInterface" value=" com.mainbo.u3.service.UcService" /> </bean>
8 主函数进行测试
public static void main(String[] args) { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] {"u3-core.xml" }); UcService us = (UcService)ctx.getBean("httpService"); String userName = us.getUserInfobyName("111111"); System.out.println( userName ); Map map = new HashMap(); map.put("userName", "王涛1"); Map mapUser = us.getUserInfobyName(map ); System.out.println(mapUser.get("userName") ); UcServiceEntity entity = new UcServiceEntity(); entity.setName("传递实体"); UcServiceEntity entity2 = us.getUserInfobyName(entity); System.out.println(entity2 ); }
相关推荐
yupi0 2020-10-10
spring 2020-08-18
编程点滴 2020-07-29
幸运小侯子 2020-07-05
itjavashuai 2020-07-04
qingjiuquan 2020-06-29
shushan 2020-06-25
小鱿鱼 2020-06-22
咻pur慢 2020-06-18
melonjj 2020-06-17
qingjiuquan 2020-06-13
neweastsun 2020-06-05
小鱿鱼 2020-06-05
mxcsdn 2020-05-31
吾日五省我身 2020-05-27
牧场SZShepherd 2020-05-27
sweetgirl0 2020-05-14