JFinal如何整合hessian?

Romotc 发布于 2013/08/14 10:52
阅读 1K+
收藏 1

@JFinal 你好,想跟你请教个问题:

能给个JFinal整合hessian的例子吗?或者有什么好的其他推荐也可以。

加载中
2
kenny0x00
kenny0x00

刚好项目中有这个需求,试了下,其实很简单。。。

1.配置好hessian

<servlet>
<servlet-name>hessianServlet</servlet-name>
<servlet-class>com.example.HelloServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>hessianServlet</servlet-name>
<url-pattern>/api</url-pattern>
</servlet-mapping>

2. 在jfinal的config中增加handler配置

@Override
public void configHandler(Handlers me) {
    me.add(new UrlSkipHandler("/api.*", false));
}

3.这样jfinal就不会拦截/api开头的url请求进行处理了,完事,不用对原有jfinal的使用方式进行改变,比如楼上所说变为*.do,好复杂的。。

附代码:

public interface HelloService {

	public String say(String name);
	
	public Project getProject(Integer id);
}


public class HelloServiceImpl extends HessianServlet implements HelloService{

	@Override
	public String say(String name) {
		return "hello " + name;
	}

	@Override
	public Project getProject(Integer id) {
		return Project.dao.findById(id);
	}
}



测试方法

public class HelloTest {

	public static void main(String[] args) throws MalformedURLException, ClassNotFoundException {
		String url = "http://localhost:8080/api";
		HessianProxyFactory factory = new HessianProxyFactory();
		HelloService service = (HelloService) factory.create(HelloService.class, url);
		String str = service.say("yvoooodoo");
		System.out.println(str);
		
		Project p = service.getProject(1);
		System.out.println(p);
	}
}



Romotc
Romotc
赞,这个思路不错。
0
JFinal
JFinal
   没用过 hessian,目测不用整合,直接用好 hessian的api就行,如果需要在系统启动或者关闭时做些事情,可以做个 HessianPlugin,在start方法中做些初始化操作,在stop方法做些释放资源操作
JFinal
JFinal
回复 @Romotc : 配置成 .do 后缀,可以看一下 com.jfinal.ext.handler.FakeStaticHandler.java 的用法
Romotc
Romotc
我现在是把JFinal配置成.do后缀,而hessian使用servlet mapping进行映射,貌似可以通过JFinal SpringPlug引入Spring 然后使用Spring发布Hessian的接口,但是大爱JFinal的无配置文件,不太想再去弄spring的配置文件。
0
云的乐乐
云的乐乐
最近 我也在用 jfianl 整合hessian 没有整合成功,你整合成功了吗? 分享下经验
返回顶部
顶部