<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: JSON-RPC-Java: Capa de abstracción para comunicaciones AJAX</title>
	<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax</link>
	<description>Calidad, Creatividad, Tecnología</description>
	<pubDate>Fri, 21 Nov 2008 17:16:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>By: Erick</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-95</link>
		<dc:creator>Erick</dc:creator>
		<pubDate>Fri, 16 May 2008 10:58:55 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-95</guid>
		<description>jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge" /&#62;
jsp:useBean id="busc" scope="session" class="com.ontologia.als.service.impl.OntologiaManagerImpl" /&#62;

% JSONRPCBridge.registerObject("busc", busc); %&#62;

html:html locale="true"&#62;
head&#62;
.
.
.
script type="text/javascript" src="js/jsonrpc.js"&#62;</description>
		<content:encoded><![CDATA[<p>jsp:useBean id=&#8221;JSONRPCBridge&#8221; scope=&#8221;session&#8221; class=&#8221;com.metaparadigm.jsonrpc.JSONRPCBridge&#8221; /&gt;<br />
jsp:useBean id=&#8221;busc&#8221; scope=&#8221;session&#8221; class=&#8221;com.ontologia.als.service.impl.OntologiaManagerImpl&#8221; /&gt;</p>
<p>% JSONRPCBridge.registerObject(&#8221;busc&#8221;, busc); %&gt;</p>
<p>html:html locale=&#8221;true&#8221;&gt;<br />
head&gt;<br />
.<br />
.<br />
.<br />
script type=&#8221;text/javascript&#8221; src=&#8221;js/jsonrpc.js&#8221;&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erick</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-94</link>
		<dc:creator>Erick</dc:creator>
		<pubDate>Fri, 16 May 2008 10:57:50 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-94</guid>
		<description>las primeras lineas del codigo son basicamente estas 

1
2

3

4
5
.
.
.
6</description>
		<content:encoded><![CDATA[<p>las primeras lineas del codigo son basicamente estas </p>
<p>1<br />
2</p>
<p>3</p>
<p>4<br />
5<br />
.<br />
.<br />
.<br />
6</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erick</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-93</link>
		<dc:creator>Erick</dc:creator>
		<pubDate>Fri, 16 May 2008 10:50:30 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-93</guid>
		<description>Hola Luis, 
Tengo un codigo en mi jsp de la siguiente forma:








.
.
.
	
.
.
	
 		jsonrpc = new JSONRpcClient("JSON-RPC");

		function refrescar(result,exception){
	  		document.getElementById("nombre").innerHTML = ""+result.nombre + "";  
	  		document.getElementById("descripcion").innerHTML = ""+result.descripcion + ""; 

			padre = "";
			if (result.hijoDe != null) 
				padre = "&lt;b&gt;" + result.relacionHijoDe + ":&lt;/b&gt; "+result.hijoDe + "";  
				
			if (result.padreDe != null)
				padre += "&lt;b&gt;" + result.relacionPadreDe + ":&lt;/b&gt; " + result.padreDe + "";
				
			document.getElementById("padres").innerHTML = padre + "";
		
			// Arreglo que contiene las propiedades de la clase
			lista=result.propiedades.list;		
			prop = "";
			
			if (lista.length&#62;0) {
				prop = "&lt;b&gt;Propiedades: &lt;/b&gt; ";
				for (var i=0;i&#60;lista.length;i++){			
					prop+=" &#160;" + lista[i]+"";
				}
			} 
			document.getElementById("propiedades").innerHTML = prop;
		
			// Arreglo que contiene las instancias de la clase
			lista2=result.instancias.list;
			inst="";
			
			if (lista2.length&#62;0){
				inst = " "

				for (var i=0;i&#60;lista2.length;i+=2){	
				
					if (i%4 == 0)
						inst += "";
					inst += "";
					inst += "&#160;&#160;&#160;&#160;";
					inst += "";	
					inst += "";					
					inst += "&lt;a href='#' rel="nofollow"&gt; " + lista2[i+1] + " &lt;/a&gt;";
					inst += ""; 
					
					if (i%2 == 1)
						inst += "";
				}
				
				inst += "";
			} 
		
			document.getElementById("instancias").innerHTML = inst;
			img = "";
			document.getElementById("imagen").innerHTML = img;
			document.getElementById("imagen").value=result.id;
		}

		function buscar(id){				
					jsonrpc.busc.buscarOntologia(refrescar,id,"");
		}
	
	


el llamado de la función buscar lo hago cuando hago clic en un elemento x de la pagina...
Ok el problema que tengo es en la linea :
					jsonrpc.busc.buscarOntologia(refrescar,id,"");

y en la consola de error me sale:
                                        JSONRpcException: Not Found

pero el script jsonrpc.js existe y esta localizado donde lo indico, ademas tengo registrado el servlet en el web.xml
lo extraño del asunto es que en algunas instalaciones hechas en  Linux y Windows me sirve, pero en algunas de linux no (Apache/2.2.3 (Ubuntu) mod_jk/1.2.18).

Podrias ayudarme al respecto, no se porque tan errático este comportamiento.
Gracias.</description>
		<content:encoded><![CDATA[<p>Hola Luis,<br />
Tengo un codigo en mi jsp de la siguiente forma:</p>
<p>.<br />
.<br />
.</p>
<p>.<br />
.</p>
<p> 		jsonrpc = new JSONRpcClient(&#8221;JSON-RPC&#8221;);</p>
<p>		function refrescar(result,exception){<br />
	  		document.getElementById(&#8221;nombre&#8221;).innerHTML = &#8220;&#8221;+result.nombre + &#8220;&#8221;;<br />
	  		document.getElementById(&#8221;descripcion&#8221;).innerHTML = &#8220;&#8221;+result.descripcion + &#8220;&#8221;; </p>
<p>			padre = &#8220;&#8221;;<br />
			if (result.hijoDe != null)<br />
				padre = &#8220;<b>&#8221; + result.relacionHijoDe + &#8220;:</b> &#8220;+result.hijoDe + &#8220;&#8221;;  </p>
<p>			if (result.padreDe != null)<br />
				padre += &#8220;<b>&#8221; + result.relacionPadreDe + &#8220;:</b> &#8221; + result.padreDe + &#8220;&#8221;;</p>
<p>			document.getElementById(&#8221;padres&#8221;).innerHTML = padre + &#8220;&#8221;;</p>
<p>			// Arreglo que contiene las propiedades de la clase<br />
			lista=result.propiedades.list;<br />
			prop = &#8220;&#8221;;</p>
<p>			if (lista.length&gt;0) {<br />
				prop = &#8220;<b>Propiedades: </b> &#8220;;<br />
				for (var i=0;i&lt;lista.length;i++){<br />
					prop+=&#8221; &nbsp;&#8221; + lista[i]+&#8221;";<br />
				}<br />
			}<br />
			document.getElementById(&#8221;propiedades&#8221;).innerHTML = prop;</p>
<p>			// Arreglo que contiene las instancias de la clase<br />
			lista2=result.instancias.list;<br />
			inst=&#8221;";</p>
<p>			if (lista2.length&gt;0){<br />
				inst = &#8221; &#8221;</p>
<p>				for (var i=0;i&lt;lista2.length;i+=2){	</p>
<p>					if (i%4 == 0)<br />
						inst += &#8220;&#8221;;<br />
					inst += &#8220;&#8221;;<br />
					inst += &#8220;&nbsp;&nbsp;&nbsp;&nbsp;&#8221;;<br />
					inst += &#8220;&#8221;;<br />
					inst += &#8220;&#8221;;<br />
					inst += &#8220;<a href='#' rel="nofollow"> &#8221; + lista2[i+1] + &#8221; </a>&#8220;;<br />
					inst += &#8220;&#8221;; </p>
<p>					if (i%2 == 1)<br />
						inst += &#8220;&#8221;;<br />
				}</p>
<p>				inst += &#8220;&#8221;;<br />
			} </p>
<p>			document.getElementById(&#8221;instancias&#8221;).innerHTML = inst;<br />
			img = &#8220;&#8221;;<br />
			document.getElementById(&#8221;imagen&#8221;).innerHTML = img;<br />
			document.getElementById(&#8221;imagen&#8221;).value=result.id;<br />
		}</p>
<p>		function buscar(id){<br />
					jsonrpc.busc.buscarOntologia(refrescar,id,&#8221;");<br />
		}</p>
<p>el llamado de la función buscar lo hago cuando hago clic en un elemento x de la pagina&#8230;<br />
Ok el problema que tengo es en la linea :<br />
					jsonrpc.busc.buscarOntologia(refrescar,id,&#8221;");</p>
<p>y en la consola de error me sale:<br />
                                        JSONRpcException: Not Found</p>
<p>pero el script jsonrpc.js existe y esta localizado donde lo indico, ademas tengo registrado el servlet en el web.xml<br />
lo extraño del asunto es que en algunas instalaciones hechas en  Linux y Windows me sirve, pero en algunas de linux no (Apache/2.2.3 (Ubuntu) mod_jk/1.2.18).</p>
<p>Podrias ayudarme al respecto, no se porque tan errático este comportamiento.<br />
Gracias.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: luis</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-37</link>
		<dc:creator>luis</dc:creator>
		<pubDate>Thu, 20 Dec 2007 16:58:24 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-37</guid>
		<description>Hola yrene,

Bueno, el archivo jsonrpc.js es la clave, tienes que ponerlo en el WebContent (que supongo que es la carpeta raiz del .war final) o donde quieras dentro de ella. Y también deberás enlazarla desde tu archivo HTML, como explico arriba, como un archivo JavaScript, haciendo así:

&#60;script type="text/javascript" src="{path al archivo}/jsonrpc.js"&#62;

Espero que te sea de ayuda!

Saludos y gracias por el post! :)</description>
		<content:encoded><![CDATA[<p>Hola yrene,</p>
<p>Bueno, el archivo jsonrpc.js es la clave, tienes que ponerlo en el WebContent (que supongo que es la carpeta raiz del .war final) o donde quieras dentro de ella. Y también deberás enlazarla desde tu archivo HTML, como explico arriba, como un archivo JavaScript, haciendo así:</p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;{path al archivo}/jsonrpc.js&#8221;&gt;</p>
<p>Espero que te sea de ayuda!</p>
<p>Saludos y gracias por el post! <img src='http://www.ateneatech.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yrene</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-36</link>
		<dc:creator>yrene</dc:creator>
		<pubDate>Thu, 20 Dec 2007 15:27:03 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-36</guid>
		<description>perdon ........la funcion va asi:




function ejemplo(f){

var jsonrpc = new JSONRpcClient("/PROYECTO_LPII_2007&#62;/JSON-RPC");

alert(jsonrpc.ejemplo.foo());

}


&#60;!--
................

bueno tambien cree la clase Ejmemplo..todo identico al ejemplo que se ha publicado aki ..gracias</description>
		<content:encoded><![CDATA[<p>perdon &#8230;&#8230;..la funcion va asi:</p>
<p>function ejemplo(f){</p>
<p>var jsonrpc = new JSONRpcClient(&#8221;/PROYECTO_LPII_2007&gt;/JSON-RPC&#8221;);</p>
<p>alert(jsonrpc.ejemplo.foo());</p>
<p>}</p>
<p>&lt;!&#8211;<br />
&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
<p>bueno tambien cree la clase Ejmemplo..todo identico al ejemplo que se ha publicado aki ..gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yrene</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-35</link>
		<dc:creator>yrene</dc:creator>
		<pubDate>Thu, 20 Dec 2007 15:19:07 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-35</guid>
		<description>hola que tal, de verdad que esto se ve muy interesante, pero lo he querido probar y no consigo el  resultado, estoy haciendo la aplicacion en java - Eclipse en mi servlet estoy poniendo lo siguiente:

		HttpSession session = request.getSession();
		JSONRPCBridge json_bridge = null;
		json_bridge = (JSONRPCBridge) session.getAttribute("JSONRPCBridge");
		if(json_bridge == null) {


		json_bridge = new JSONRPCBridge();
		session.setAttribute("JSONRPCBridge", json_bridge);
		json_bridge.registerObject("ejemplo", new Ejemplo());

		}

hago la conexion en el jsp y coloco la funcion


&lt;!--idCliente = document.getElementById('idCliente');//--&gt;
function ejemplo(f){
//--var jsonrpc = new JSONRpcClient("/PROYECTO_LPII_2007/JSON-RPC");
var jsonrpc = new JSONRpcClient_getHTTPRequest("//JSON-RPC");
//--alert("hola");
alert(jsonrpc.ejemplo.foo());

}


&#60;!--
.Estilo1 {...

bueno y en el metodo onclick del boton coloco la funcion :
&#60;input type="button" onclick="ejemplo(this.form)" name="bt.....

Bueno disculpen la ignorancia...pero la verdad me gustaria mucho poder usar esto.

ah por cierto en el webContent tengo que colocar el archivo "jsonrpc.js"?...porque asi lo he estado haciendo, bueno dentro de el encuentro varios metodos

GRACIAS ...y disculpen tanta molestia espero alguien pueda orientarme.</description>
		<content:encoded><![CDATA[<p>hola que tal, de verdad que esto se ve muy interesante, pero lo he querido probar y no consigo el  resultado, estoy haciendo la aplicacion en java - Eclipse en mi servlet estoy poniendo lo siguiente:</p>
<p>		HttpSession session = request.getSession();<br />
		JSONRPCBridge json_bridge = null;<br />
		json_bridge = (JSONRPCBridge) session.getAttribute(&#8221;JSONRPCBridge&#8221;);<br />
		if(json_bridge == null) {</p>
<p>		json_bridge = new JSONRPCBridge();<br />
		session.setAttribute(&#8221;JSONRPCBridge&#8221;, json_bridge);<br />
		json_bridge.registerObject(&#8221;ejemplo&#8221;, new Ejemplo());</p>
<p>		}</p>
<p>hago la conexion en el jsp y coloco la funcion</p>
<p><!--idCliente = document.getElementById('idCliente');//--><br />
function ejemplo(f){<br />
//&#8211;var jsonrpc = new JSONRpcClient(&#8221;/PROYECTO_LPII_2007/JSON-RPC&#8221;);<br />
var jsonrpc = new JSONRpcClient_getHTTPRequest(&#8221;//JSON-RPC&#8221;);<br />
//&#8211;alert(&#8221;hola&#8221;);<br />
alert(jsonrpc.ejemplo.foo());</p>
<p>}</p>
<p>&lt;!&#8211;<br />
.Estilo1 {&#8230;</p>
<p>bueno y en el metodo onclick del boton coloco la funcion :<br />
&lt;input type=&#8221;button&#8221; onclick=&#8221;ejemplo(this.form)&#8221; name=&#8221;bt&#8230;..</p>
<p>Bueno disculpen la ignorancia&#8230;pero la verdad me gustaria mucho poder usar esto.</p>
<p>ah por cierto en el webContent tengo que colocar el archivo &#8220;jsonrpc.js&#8221;?&#8230;porque asi lo he estado haciendo, bueno dentro de el encuentro varios metodos</p>
<p>GRACIAS &#8230;y disculpen tanta molestia espero alguien pueda orientarme.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amarmol</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-29</link>
		<dc:creator>amarmol</dc:creator>
		<pubDate>Tue, 18 Dec 2007 07:24:24 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-29</guid>
		<description>Hola luis
Supongo que no debe de haber problemas si las relaciones entre los beans son simples. Pero me preguntaba como se comportaria en una base de datos con muchas relaciones entre las entidades (mapeadas con JPA) , porque suponte que (exagerando un poco)  tirando de las relaciones,  cargas en la memoria del navegador toda la base de datos...

Lo que realmente me interesa saber es si JSON-RPC crea en memoria del navegador todos los atributos (ya sean otros beans, o tipos basicos) o por el contrario, alli donde se encuentra un atributo que es un bean te crea el codigo AJAX necesario para recuperar dicho atributo, de manera que en memoria del cliente solo estan los beans que estar utilizando... 

Sera cuestion de probarlo aunque me parece que JSON-RPC te recupera todos los atributos de un bean y los carga en el cliente.

Saludos</description>
		<content:encoded><![CDATA[<p>Hola luis<br />
Supongo que no debe de haber problemas si las relaciones entre los beans son simples. Pero me preguntaba como se comportaria en una base de datos con muchas relaciones entre las entidades (mapeadas con JPA) , porque suponte que (exagerando un poco)  tirando de las relaciones,  cargas en la memoria del navegador toda la base de datos&#8230;</p>
<p>Lo que realmente me interesa saber es si JSON-RPC crea en memoria del navegador todos los atributos (ya sean otros beans, o tipos basicos) o por el contrario, alli donde se encuentra un atributo que es un bean te crea el codigo AJAX necesario para recuperar dicho atributo, de manera que en memoria del cliente solo estan los beans que estar utilizando&#8230; </p>
<p>Sera cuestion de probarlo aunque me parece que JSON-RPC te recupera todos los atributos de un bean y los carga en el cliente.</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: becario_precario</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-26</link>
		<dc:creator>becario_precario</dc:creator>
		<pubDate>Mon, 17 Dec 2007 12:15:07 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-26</guid>
		<description>WOWWWWW!!!! que pedazo de tecnología!!! Necesito aplicarla ya mi proyecto para sorprender al jefe y que me quite de becario. Me podeis para cuándo más o menos teneis pensado tener el ejemplo con los Beans y los HashMap. Mil gracias</description>
		<content:encoded><![CDATA[<p>WOWWWWW!!!! que pedazo de tecnología!!! Necesito aplicarla ya mi proyecto para sorprender al jefe y que me quite de becario. Me podeis para cuándo más o menos teneis pensado tener el ejemplo con los Beans y los HashMap. Mil gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: luis</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-25</link>
		<dc:creator>luis</dc:creator>
		<pubDate>Mon, 17 Dec 2007 08:25:18 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-25</guid>
		<description>Hola amarmol,

La verdad es que no he probado la posibilidad que apuntas.

Pero, aun sin probarlo, entendiendo el mecanismo de comunicación, no hay ningún problema en combinar JPA con JSON-RPC-Java. Esta librería lo que hace es mapear las llamadas a funciones Java con funciones JavaScript de forma transparente, eso y solo eso. Esta sencillez es su punto fuerte, pues no interfiere en el resto del desarrollo, siendo posible, en teoría, combinarlo con cualquier otra tecnología sin problemas!

Si realizas una prueba, no dudes en comentar el resultado! Gracias por comentar :)</description>
		<content:encoded><![CDATA[<p>Hola amarmol,</p>
<p>La verdad es que no he probado la posibilidad que apuntas.</p>
<p>Pero, aun sin probarlo, entendiendo el mecanismo de comunicación, no hay ningún problema en combinar JPA con JSON-RPC-Java. Esta librería lo que hace es mapear las llamadas a funciones Java con funciones JavaScript de forma transparente, eso y solo eso. Esta sencillez es su punto fuerte, pues no interfiere en el resto del desarrollo, siendo posible, en teoría, combinarlo con cualquier otra tecnología sin problemas!</p>
<p>Si realizas una prueba, no dudes en comentar el resultado! Gracias por comentar <img src='http://www.ateneatech.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amarmol</title>
		<link>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-24</link>
		<dc:creator>amarmol</dc:creator>
		<pubDate>Mon, 17 Dec 2007 07:55:12 +0000</pubDate>
		<guid>http://www.ateneatech.com/blog/json-rpc-java-capa-de-abstraccion-para-comunicaciones-ajax#comment-24</guid>
		<description>Sería posible combinar esto con JPA?
Es decir meter en el Bridge una entidad cuyos atributos sean otras entidades en la base de datos mapeados JPA</description>
		<content:encoded><![CDATA[<p>Sería posible combinar esto con JPA?<br />
Es decir meter en el Bridge una entidad cuyos atributos sean otras entidades en la base de datos mapeados JPA</p>
]]></content:encoded>
	</item>
</channel>
</rss>
