Greenbox@Reloaded ?

Bom, desenvolvendo com JBoss Studio e JBoss Seam, ainda me faz muita falta as mágicas que o Greenbox nos dava na palma da mão, por isso, estou estruturando algumas extensões para proporcionar maior produtividade agora criando agora plugins para Eclipse.

O exemplo a seguir me ajuda a ler qualquer .class Java para poder usar Reflection, obrigado Edson Tirelli, pela dica simplificada de capturar isto, segue aqui a dica:

[java]

URL url = null;
try {
File dir = new File(”/opt/java/redhat/jboss-studio/workspace/travelweb/build/classes/”);

url = dir.toURL();

} catch (MalformedURLException e) {
e.printStackTrace();
}
URL[] urls = {url};
ClassLoader spec = new URLClassLoader(urls);

Class c = null;
try {
c = spec.loadClass(”travelweb.entity.TravelRequest”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

System.out.printf(”On class %s I found the following fields”,c.getName());

[/java]

Usando DWR no JBoss Portal

Estes dias tivemos que realizar uma prova de conceito se o DWR rodava no JBoss Portal. A minha primeira impressão era que seria possível, mas em primeira instância a referência aos JavaScripts deveria ser feita nos templates, porém devido a flexibilidade no JBP toda referência fica nas próprias Páginas enviadas para o cliente pelo o Portlet.

Veja o exemplo da chamada no Html:

[html]

< %@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>

< % String contextPath = renderResponse.encodeURL(renderRequest.getContextPath()); %>

script type=”text/javascript”>

script type=”text/javascript”>< %=contextPath%>/dwr/util.js

[/html]

Sendo assim, a referência é buscada pelo objeto renderResponse, retornando assim o local de execução do contexto http do jboss portal.

O código do Portlet é mais ou menos assim:

[java]

package org.jboss.portal.samples.dwr;

import java.io.IOException;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
public class DWRPortlet extends GenericPortlet {
@Override
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { |
response.setContentType(”text/html”);
PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher (”/WEB-INF/dwr/view.jsp”);

prd.include(request, response); }
}

[/java]

Veja o resultado na seguinte imagem:

DWR no JBoss Portal

Atendendo a pedidos: Palestra EJB 3.0 Novos Design Patterns

Esta foi a palestra ministrada por Fabiane Nardon e eu no JavaOne2007 em São Francisco, espero que sirva de ajuda e/ou sugestões:

Forge Abraço

Edgar

Questões de ClassLoaders do JBoss AS

Em alguns cenários, você quer que suas aplicações Web busquem primeiramente as classes que estejam no reposítório de WEB-INF/lib e WEB-INF/classes . Isso pode acontecer por inúmeros motivos, entre eles uma biblioteca que depende de uma versão diferente da que é disponbilizada por padrão pelo container do JBoss. Sendo assim, altere as porções dentro do arquivo jboss-service.xml que fica no JBOSS_HOME/server/deploy/jboss-web.deployer/META-INF. Veja o exemplo:

[xml]
false

false
[/xml]