在已有项目集成hessian

第一步骤:引入jar包,hessian-4.0.6.jar

第二步骤:在我们项目中web.xml,配置的拦截器是,过滤的是.ik路径,所以我们为了不让拦截器拦截,我们在添加一个后缀,放过。

<filter>
<filter-name>uriFilter</filter-name>
<filter-class>com.cntaiping.life.interceptor.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>uriFilter</filter-name>
<url-pattern>*.ik</url-pattern>
</filter-mapping>

修改下面配置

<!-- servlet控制跳转 -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml,classpath:sys-servlet.xml</param-value>--新添加的配置文件

</init-param>
</servlet>

<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.ik</url-pattern>
<url-pattern>*.hessian</url-pattern>  ----新增的,拦截器不拦截
</servlet-mapping>

第二步骤:classpath:sys-servlet.xml  配置文件内容

<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="true"
xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd">

<!--hessian-->
<bean id="httpRequestHandlerAdapter" class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean id="hessianCustomerServiceImpl" class="com.cntaiping.life.logic.impl.HessianCustomerServiceImpl"/>--实现类路径
<bean name="/getPresentGradeByUserId.hessian" class="org.springframework.remoting.caucho.HessianServiceExporter">--暴露给外部访问的路径
<property name="service" ref="hessianCustomerServiceImpl"/>--要暴露的实现类
<property name="serviceInterface" value="com.cntaiping.life.logic.HessianCustomerService"/>---要暴露的接口
</bean>
</beans>

HessianCustomerService.java

package com.cntaiping.life.logic;

public interface HessianCustomerService {

public String getPresentGradeByUserId(String user_id);
}

HessianCustomerServiceImpl.java

package com.cntaiping.life.logic.impl;

import org.springframework.beans.factory.annotation.Autowired;

import com.cntaiping.life.dao.HessianCustomerMapper;
import com.cntaiping.life.logic.HessianCustomerService;

public class HessianCustomerServiceImpl implements HessianCustomerService{

@Autowired
HessianCustomerMapper hessianCustomerMapper;

@Override
public String getPresentGradeByUserId(String user_id){
String presentGrade = hessianCustomerMapper.getPresentGradeByUserId(user_id);
return presentGrade;
}

}

HessianCustomerMapper.java

package com.cntaiping.life.dao;

public interface HessianCustomerMapper {

public String getPresentGradeByUserId(String user_id);
}

HessianCustomerMapper.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cntaiping.life.dao.HessianCustomerMapper">

<select id="getPresentGradeByUserId" resultType="String" parameterType="String">
select *
from (Select s.present_grade,
row_number() over(partition by s.user_id order by bat desc) rn
from t_sco s where s.user_id =#{user_id} )
where rn = 1

</select>
</mapper>

第三步骤:启动项目后,我们在搞一个测试项目用来测试暴露的服务是否可以正常访问,测试项目中一定要有一个一样的接口类(这里就是我们的HessianCustomerService.java )

测试类:TestClient.java

package com.session.client;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;
import com.hession.service.HessianCustomerService;
import com.hession.service.IPrinter;

public class TestClient {

/**
* @param args
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException {

String url = "http://127.0.0.1:8080/amltpDemo/getPresentGradeByUserId.hessian";
HessianProxyFactory factory = new HessianProxyFactory();

factory.setOverloadEnabled(true);

HessianCustomerService hessianCustomerService = (HessianCustomerService) factory.create(HessianCustomerService.class, url);
String aaa = hessianCustomerService.getPresentGradeByUserId("211777078");
System.out.println(aaa);
}
}

HessianCustomerMapper.java

package com.cntaiping.life.dao;

public interface HessianCustomerMapper {

public String getPresentGradeByUserId(String user_id);
}

第四步骤:启动测试项目,完成测试。

时间: 2024-08-03 14:08:11

在已有项目集成hessian的相关文章

Spring学习(一)tomcat加载web.xml、以及项目集成Spring支持

tomcat容器加载web.xml 一. 1 .启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param> 两个结点. 2 .紧急着,容创建一个 ServletContext ( servlet 上下文),这个 web 项目的所有部分都将共享这个上下文. 3 .容器将 <context-param> 转换为键值对,并交给 servletContext . 4 .容器创建 <li

vs项目,点击.sln文件时出错:“项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序”解决办法

关键词:VS2005程序用VS2008打开 程序无法使用 项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序 在要打开的项目sln文件上右键,打开方式,不要用Micrisoft visual studio version selector,用D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe打开. vs项目,点击.sln文件时出错:"项目所需的应用程序未安装,确保已安装项目类型(.cspro

Xcode下载失败 使用已购项目页面再试一次

Mac App Store下载失败 使用已购项目页面再试一次解决办法 我们很多使用Mac的用户朋友可能都会遇到过这样的情况,那就是在Mac系统App Store 中下载应用软件时,会提示我们"使用已购页面再试一次"的情况.由于苹果的 App Store 应用商店在国外,所以 DNS 如果不好会直接影响应用的下载以及更新.下面PC6小编给大家简单介绍下如何解决这个问题. 1.在屏幕右上角找到WiFi图标,点击进入"打开网络偏好设置". 2.在网络设置窗口中,选中当前已

SpringMVC将一个项目集成在另一个项目中

将KissfloveUtil项目集成在自己项目中.在pom.xml中加入以下配置: <dependencies> <dependency> <groupId>com.kissflove</groupId> <artifactId>kissfloveUtil</artifactId> <version>0.0.1</version> </dependency> </dependencies>

新建项目的无法应用已有项目

新建的项目需引用已有项目 不然无法调用已有项目的类这里右键点击 项目 添加引用 即可 新建项目的无法应用已有项目,布布扣,bubuko.com

将已有项目提交到github/从github上pull到本地

之前都写过一篇github常用命令的文章,可是这些日子来,发现自己根本没掌握,真是很讨厌github这种提交方式,如果能够使用界面操作多好啊. 添加已有项目到github 新建repository,可以在github网站上直接新建或者使用windows github工具. 进入github repository 项目 在github windows工具中使用git Bash打开项目,使用cd命令进入已有项目根目录下 touch README.md //新建说明文件git init //在当前项目

新手入门--stm32将其他项目功能添加到已有项目

环境:keil4+stm32项目 已有项目名project 要添加功能项目名project2 实例场景:在project中添加project2中SD卡读写功能(带fatfs文件系统),也可以理解为将project2中已实现的带fatfs的SD卡读写模块移植到新项目project中. 步骤: 1.启动文件:在project2中的启动文件为startup_stm32f10x_hd.s(固件库版本V3.0.0),在project中启动文件为startup_stm32f10x_md.s(固件库版本V3.

怎样用Git对已有项目进行版本管理

你可能已经知道了,Xcode4 带来了一大堆让给苹果的开发者们兴奋的改进. 现在你可以给你的项目设置多个仓库(repositories),当然现在最流行,好用的就是用Git来进行版本控制了. 当然如果用 Xcode4 创建一个新的项目,并使用Git版本管理非常方便,只要在新建项目时把Source Control这个复选框勾上就可以了. 但对已有的项目,怎样用Git来管理呢?其实也不难,首先用Terminal 到你项目的路径,然后用Git命令进行初始化,比如说 cd /workspace/Work

Vue.js项目集成ElementUI

Vuejs实例-02Vue.js项目集成ElementUI Vuejs实例-02Vue.js项目集成ElementUI 0:前言 vue.js的UI组件库,在git上有多个项目,我见的使用者比较多的是iView和Element.两个组件库,组件都很丰富. 官网的介绍 iView: 一套基于 Vue.js 的高质量 UI 组件库 Element,一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助你的网站快速成型. 两者各有优缺点,不多评论,根据自己的需求,