论坛首页 Java企业应用论坛

第一版,可以理解为Preview

浏览 1431 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-02-08  
基于前两天写的一个Coderhttp://zcy860511.iteye.com/blog/589096
制作的一个Javascript远程对象调用器
开始添加了spring的调用,现在暂时处于不稳定状态,所以这里就不使用了。

先看下服务端配置:
web.xml
<servlet>
	  <servlet-name>debug</servlet-name>
	  <servlet-class>org.javazone.jroi.web.servlet.JroiServlet</servlet-class>
	  <init-param>
	  <param-name>jroi.configuration.location</param-name>
	  <param-value>jroi.config.xml</param-value>
	  </init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>debug</servlet-name>
  	<url-pattern>/jroi/*</url-pattern>
  </servlet-mapping>

jroi.config.xml//该文件放于classpath下
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE remote-beans PUBLIC
"-//JAVAZONE//DTD Javazone Remote Object Invoker//EN"
"jroi10.dtd">
<remote-beans>

	<bean id="TestBean" class="org.javazone.show.jroi.RemoteBean" scope="single">
		<constructor>
			<args index="0" ref="bean"/>
		</constructor>
		<method name="getString"/>
		<method name="getInt"/>
		<method name="getBean"/>
	</bean>
	
	<bean id="bean" class="org.javazone.show.jroi.Bean" scope="single" />
	
</remote-beans>

服务端代码:
Bean.java
package org.javazone.show.jroi;

public class Bean
{

	private String name = "bean name";

	private String value = "bean value";

	public void setName(String name)
	{
		this.name = name;
	}

	public String getName()
	{
		return name;
	}

	public void setValue(String value)
	{
		this.value = value;
	}

	public String getValue()
	{
		return value;
	}
}

RemoteBean.java
public class RemoteBean
{
	private Bean bean;

	public RemoteBean(Bean bean)
	{
		this.bean = bean;
	}

	public String getString()
	{
		return "test String";
	}

	public int getInt()
	{
		return 1248123;
	}

	public Bean getBean()
	{
		return bean;
	}
}

客户端代码。
<script src="./jroi/jroi.js" ></script>
<script src="./jroi/TestBean.js"></script>

引入这两个文件
function testString(){
	TestBean.getString(callback);
}

function testInt(){
	TestBean.getInt(callback);
}

function testBean(){
	TestBean.getBean(callback);
}

function callback(data){
	if(typeof data == 'object')
	{
		var div = document.getElementById("print")
		div.innerHTML = "data.name = " + data.name + " data.value" + data.value
	}
	else{
		var div = document.getElementById("print")
		div.innerHTML = data;
	}
}

上面是具体用法,因为是异步的所以会有回调函数

总结来看,和DWR是差不多的关系,只是发现DWR一些不好的地方,改进了一下,不需要配置convert就可以直接转换你的Bean,更加智能,而且我发现DWR貌似不能使用具有构造函数的Bean,所以也解决了这个问题,当然,我不是很熟悉DWR这个框架,所以不知道有提供这样的方法没有。

最后,jroi需要和apache的logging工具一起使用,需要导入这个包,我就不发上来了,至于dtd,如果使用eclipse需要添加一下xml catalog。

这个版本只是一个预览版,应该有很多的BUG,所以大家尽可能的给我提出来,我将不甚感激
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics