Lazslo - Aplicacao Java

Ola pessoal,

Tenho uma aplicação Java, a qual esta rodando no tomcat. Tomcat que veio junto com a instalação do compilador do laszlo. Estou tentando acessar minha aplicação Java a partir de um determinado LZX, através de chamadas remotas <javarpc>. O problema é que a facade da minha aplicação, a qual inseri no ServletContext durante a requisição ao meu Controlador, não está sendo encontrada pelas chamadas remotas do meu <javarpc>.

Já tentei inserir meu objeto, facade, na sessão da aplicação anteriormente, ocasionando no mesmo erro.

Gostaria de opniões sobre tal problema e se há alguma outra forma de acessar informações de Objetos Java a partir de um LZX.

Codigo Java ( Controlador )

  public void init&#40;&#41; &#123;
       realpath =  getServletContext&#40;&#41;.getRealPath&#40; &quot;/&quot; &#41;;
       this.facade = new MinhaFacade&#40; realpath &#41;;
       getServletContext&#40;&#41;.setAttribute&#40;&quot;facade&quot;, this.facade &#41;;
  &#125;

Código LZX

&lt;javarpc id=&quot;facade&quot; attributename=&quot;facade&quot; autoload=&quot;true&quot; scope=&quot;webapp&quot; loadoption=&quot;loadonly&quot; classname=&quot;meupacotes.MinhaFacade&quot;&gt;
       
        &lt;remotecall name=&quot;teste&quot; funcname=&quot;teste&quot;&gt;
         
            &lt;method event=&quot;ondata&quot; args = &quot;arg&quot;&gt;
                Debug.write&#40; &quot;Testando&#58; &quot; , arg &#41;;
            &lt;/method&gt;

        &lt;/remotecall&gt;
           
    &lt;/javarpc&gt;

[]'s
Willames Carlos

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Erko[/color][/size] :joia:

Bem não entendi bem seu problema.
Para não perder tempo vou colocar o que eu entendi.

Vc nao esta conseguindo acessar uma classe com o laslzo certo.

Bem se for isso vou te passar um exemplo, ai vc compara com o seu, vc pode ter esquecido algo. Que acho foi a instância da classe.

Vou usar o exemplo de um método para que a página não fique muito grande.

Java

public static String setAtivarProfilingLaszlo&#40;String ativa&#41;throws Throwable&#123;
		
	System.setProperty&#40;&quot;profiling&quot;,ativa&#41;;

	return ativa;
&#125;

No seu arquivo LZX vc irá ter…

Instância da classe FacadeAjax

&lt;security&gt;
        &lt;allow&gt;
            &lt;pattern&gt;^br\.com\.sysgraph\.ajax\.FacadeAjax&lt;/pattern&gt;
        &lt;/allow&gt;
 &lt;/security&gt;

RPC da Classe FacadeAjax(É apenas para ser usado com um determinado metódo, mais pode ser usado para todos os métodos)

&lt;javarpc name=&quot;facadeAjaxProfiling&quot; scope=&quot;none&quot; 
             classname=&quot;br.com.sysgraph.ajax.FacadeAjax&quot;&gt;

        &lt;handler name=&quot;ondata&quot; args=&quot;res&quot;&gt;
	        &lt;!&#91;CDATA&#91;
	            if&#40;res&#41;&#123;
	            	canvas.vAcao.opcaoAtivado&#40;&#41;;
	            	if&#40;res == &quot;ativado&quot;&#41;&#123;
	            		Debug.write&#40;'&#40;Foi&#58;', res&#41;;
	            		canvas.vAcao.opcaoAtivado&#40;&#41;;
	            		
	            	&#125;else if&#40;res == &quot;desativado&quot;&#41;&#123;
	            		Debug.write&#40;'&#40;Foi&#58;', res&#41;;
	            		canvas.vAcao.opcaoDesativado&#40;&#41;;
	            	&#125;
	            	
	            &#125;else&#123;
	            	Debug.write&#40;'Deu falso'&#41;;
	            	canvas.vAcao.opcaoDesativado&#40;&#41;;
	            &#125;
	         &#93;&#93;&gt;
        &lt;/handler&gt;

        &lt;handler name=&quot;onerror&quot; args=&quot;errmsg&quot;&gt;
            Debug.write&#40;'&#40;types onerror&#41; error&#58;', errmsg&#41;;
        &lt;/handler&gt;

 &lt;/javarpc&gt;

Neste caso como cada método teria no seu retorno uma ação diferente e os dados de retorno tambem não são os do mesmo tipo(alguns são String, , boolean, int e etc)então tive que criar vários desse javarpc acima, para que cada método tivesse um tratamento diferente no seu retorno. Não sei se tem outra maneira, mais essa foi a mais simples que encontrei.

Neste exemplo ACIMA vc pode fazer chamadas para qualquer método que retorne uma string ou boolean ele vai servir para todos, agora se vc quer utilizar para um método que retorne um int, ai é que esta o problema, pois no ondata eu faço uma pequena regra, então para o int ele iria da problema, agora se vc nao quer fazer essa “validacao” dentro do ondata ai vc pode usar ele para todos os métodos.

Chamada ao método da classe FacadeAjax passando parâmetro

&lt;button id=&quot;botaoAtiva&quot; name=&quot;botaoAtiva&quot; text=&quot;Ativa&quot; visible=&quot;false&quot; onclick=&quot;this.setAtivarProfilingLaszlo.invoke&#40;&#41;&quot;&gt;
				      		
    	&lt;remotecall funcname=&quot;setAtivarProfilingLaszlo&quot; 
		     remotecontext=&quot;$once&#123; facadeAjaxProfiling &#125;&quot;&gt;
		&lt;param value=&quot;'ativado'&quot; /&gt;
          &lt;/remotecall&gt;
		            		
&lt;/button&gt;

Bem espero ter ajudado e espero que tenha entendido, qualquer dúvida posta ai ;D

Abraços