Seguinte galera.. estou desenvolvendo um monitor de serviços...
tenho um escopozinho dele ja feito... soh q agarrei num problema agora:
do jeito q ta ele esta feito com um arraylist num datatable..
agora.. preciso que o campo detalhes na "tabela" seja um link caso ocorra um erro(somente se ocorrer o erro),e esse link abra com detalhes do erro e talz..
alguem sabe me dizer se consigo fazer isso em datatable mesmo??
ow se terei q usar table..
arraylist mesmo??
como faço?
estou perdido!
ajudem plz.. valeu!!
package br.gov.prodemge.monitor;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import com.softwareag.entirex.aci.BrokerException;
import br.gov.prodemge.broker.client.BrokerConversation;
public class MonitorBean {
List<Item> lista1;
private final String CODIGO_ERRO="999";
private String codigo,driver,url,user,password,query;
public MonitorBean(){
lista1 = new ArrayList<Item>();
preencherDados();
inicializarHosts();
monitorar();
}
private ResourceBundle hostConfig;
private ResourceBundle msgConfig;
/*Método que carrega arquivo de propriedades com configurações do broker
* e com mensagens utilizadas no monitor.*/
private void inicializarHosts(){
try {
hostConfig = ResourceBundle.getBundle("brokerconfigmonitor");
} catch (Exception e) {
System.out.println("\n\n\n\nArquivo de configuração do Broker não encontrado.");
e.printStackTrace();
}
try {
msgConfig = ResourceBundle.getBundle("mensagensmonitor");
} catch (Exception e) {
System.out.println("\n\n\n\nArquivo de configuração de Mensagens não encontrado.");
e.printStackTrace();
}
}
String mensagem = null;
String[] params = null;
public void monitorar() {
try {
monitorarSigecop();
monitorarSisap();
monitorarBancoDeDados();
monitorarAdseg();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
/* Método para monitorar serviço ADSEG*/
public void monitorarAdseg() {
try {
BrokerConversation bcon = BrokerConversation.getInstancia("adseg", hostConfig, msgConfig);
mensagem = "mensagem.acessarAdseg";
StringBuffer result = bcon.getResponseAsString(mensagem, params);
codigo=result.substring(0, 3);
if(codigo.equals(CODIGO_ERRO))
{
lista1.get(4).setStatus(false);
lista1.get(4).setDetalhe(msgConfig.getString("mensagem.erro.programa"));
}
else
{
lista1.get(4).setStatus(true);
lista1.get(4).setDetalhe(msgConfig.getString("mensagem.servico.adseg.registrado"));
}
} catch (BrokerException e) {
if((e.getErrorClass() == 0007) || e.getErrorCode() == 7)
{ lista1.get(4).setDetalhe(msgConfig.getString("mensagem.erro.servico.adseg.nao.registrado"));
}
if((e.getErrorClass() == 0074) || e.getErrorCode() == 74)
{ lista1.get(4).setDetalhe(msgConfig.getString("E074"));
}
if((e.getErrorClass() == 0020) || e.getErrorCode() == 94)
{ lista1.get(4).setDetalhe(msgConfig.getString("E0020"));
}
if((e.getErrorClass() == 0215) || e.getErrorCode() == 215)
{ lista1.get(4).setDetalhe(msgConfig.getString("E215"));
}
lista1.get(4).setStatus(false);
}
}
/* Método para monitorar serviço SIGECOP*/
public void monitorarSigecop(){
try {
BrokerConversation bcon = BrokerConversation.getInstancia("sigecop", hostConfig, msgConfig);
mensagem = "mensagem.consultarConcurso";
StringBuffer result = bcon.getResponseAsString(mensagem, params);
codigo=result.substring(0, 3);
if(codigo.equals(CODIGO_ERRO))
{
lista1.get(2).setStatus(false);
lista1.get(2).setDetalhe(msgConfig.getString("mensagem.erro.programa"));
}
else
{
lista1.get(2).setStatus(true);
lista1.get(2).setDetalhe(msgConfig.getString("mensagem.servico.sigecop.registrado"));
}
lista1.get(0).setStatus(true);
}
catch (BrokerException e) {
if((e.getErrorClass() == 0007) || e.getErrorCode() == 7)
{ lista1.get(2).setDetalhe(msgConfig.getString("mensagem.erro.servico.sigecop.nao.registrado"));
lista1.get(0).setDetalhe(msgConfig.getString("mensagem.servico.broker.funcionando"));
lista1.get(0).setStatus(true);
}
if((e.getErrorClass() == 0074) || e.getErrorCode() == 74)
{ lista1.get(2).setDetalhe(msgConfig.getString("E074"));
lista1.get(0).setDetalhe(msgConfig.getString("mensagem.servico.broker.funcionando"));
lista1.get(0).setStatus(true);
}
if((e.getErrorClass() == 0020) || e.getErrorCode() == 94)
{ lista1.get(2).setDetalhe(msgConfig.getString("E0020"));
lista1.get(0).setDetalhe(msgConfig.getString("E0020"));
lista1.get(0).setStatus(false);
}
if((e.getErrorClass() == 0215) || e.getErrorCode() == 215)
{ lista1.get(2).setDetalhe(msgConfig.getString("E215"));
lista1.get(0).setDetalhe(msgConfig.getString("E215"));
lista1.get(0).setStatus(false);
}
lista1.get(2).setStatus(false);
}
}
/* Método para monitorar serviço SISAP*/
public void monitorarSisap(){
try {
BrokerConversation bcon = BrokerConversation.getInstancia("sisap", hostConfig, msgConfig);
mensagem = "mensagem.orgaoEntidade";
StringBuffer result = bcon.getResponseAsString(mensagem, params);
codigo=result.substring(0, 3);
if(codigo.equals(CODIGO_ERRO))
{
lista1.get(1).setStatus(false);
lista1.get(1).setDetalhe(msgConfig.getString("mensagem.erro.programa"));
}
else
{
lista1.get(1).setStatus(true);
lista1.get(1).setDetalhe(msgConfig.getString("mensagem.servico.sisap.registrado"));
}
} catch (BrokerException e) {
if((e.getErrorClass() == 0007) || e.getErrorCode() == 7)
{ lista1.get(1).setDetalhe(msgConfig.getString("mensagem.erro.servico.sisap.nao.registrado"));
}
if((e.getErrorClass() == 0074) || e.getErrorCode() == 74)
{ lista1.get(1).setDetalhe(msgConfig.getString("E074"));
}
if((e.getErrorClass() == 0020) || e.getErrorCode() == 94)
{ lista1.get(1).setDetalhe(msgConfig.getString("E0020"));
}
if((e.getErrorClass() == 0215) || e.getErrorCode() == 215)
{ lista1.get(1).setDetalhe(msgConfig.getString("E215"));
}
lista1.get(1).setStatus(false);
}
}
/* Método para monitorar serviço de Banco de Dados*/
public void monitorarBancoDeDados(){
driver=msgConfig.getString("jdbc.driver");
url=msgConfig.getString("jdbc.url");
user=msgConfig.getString("jdbc.user");
password=msgConfig.getString("jdbc.password");
query=msgConfig.getString("jdbc.query");
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,user,password);
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(query);
if(rs!=null)
lista1.get(3).setDetalhe(msgConfig.getString("mensagem.conexao.banco.dados.efetuada"));
lista1.get(3).setStatus(true);
}
catch (RuntimeException e) {
lista1.get(3).setStatus(false);
lista1.get(3).setDetalhe(msgConfig.getString("mensagem.erro.conexao.banco.dados"));
}
catch (SQLException e){
lista1.get(3).setStatus(false);
lista1.get(3).setDetalhe(msgConfig.getString("mensagem.erro.conexao.banco.dados"));
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
public List<Item> getLista1() {
return lista1;
}
public void setLista1(List<Item> lista1) {
this.lista1 = lista1;
}
private void preencherDados(){
lista1.add(new Item("Broker"));
lista1.add(new Item("Sisap"));
lista1.add(new Item("Sigecop"));
lista1.add(new Item("Banco de Dados"));
lista1.add(new Item("Adseg"));
}
public static void main (String args[]) throws ClassNotFoundException, SQLException {
MonitorBean m= new MonitorBean();
m.monitorarBancoDeDados();
m.monitorarSisap();
m.monitorarSigecop();
m.monitorarAdseg();
System.out.println("Adseg ="+m.lista1.get(4).isStatus());
System.out.println("banco = " + m.lista1.get(3).isStatus());
System.out.println("sisap = " + m.lista1.get(1).isStatus());
System.out.println("sigecop =" +m.lista1.get(2).isStatus());
System.out.println("broker =" +m.lista1.get(0).isStatus());
}
}
package br.gov.prodemge.monitor;
public class Item {
private int codigo;
private String descricao;
private String detalhe;
private boolean status;
public Item(String descricao){
this.setDescricao(descricao);
this.setStatus(false);
}
public Item(String descricao, boolean status){
this.setDescricao(descricao);
this.setStatus(status);
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getDetalhe() {
return detalhe;
}
public void setDetalhe(String detalhe) {
this.detalhe = detalhe;
}
}
package br.gov.prodemge.monitor;
public class Item {
private int codigo;
private String descricao;
private String detalhe;
private boolean status;
public Item(String descricao){
this.setDescricao(descricao);
this.setStatus(false);
}
public Item(String descricao, boolean status){
this.setDescricao(descricao);
this.setStatus(status);
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getDetalhe() {
return detalhe;
}
public void setDetalhe(String detalhe) {
this.detalhe = detalhe;
}
}
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<f:view>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Monitoramento Sigecop</TITLE>
<LINK REL="STYLESHEET" HREF="./css/estilo_seplag.css" TYPE="text/css">
</HEAD>
<BODY>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="25%" bgcolor="#C4DBEB"><div align="left"><img src="images/cab_left.jpg" width="188" height="90"></div></td>
<td width="49%" bgcolor="#C4DBEB"><div align="center"><img src="images/logomarca_sigecop.jpg" width="366" height="90"></div></td>
<td width="26%" bgcolor="#C4DBEB"><div align="right"><img src="images/cab_right.jpg" width="188" height="90"></div></td>
</tr>
</table>
<CENTER>
<TABLE style="bordaTodosLados">
<TR style="cabecalhoTabela">
<td CLASS="tituloTela">Monitor SIGECOP</td>
</TR>
</TABLE>
<h:form>
<h:dataTable styleClass="tabela" value="#{monitorBean.lista1}"var="itemMonitorado1"border="1">
<h:column>
<h:outputText value="#{itemMonitorado1.descricao}" style=""/>
</h:column>
<h:column>
<h:outputText value="#{itemMonitorado1.status}" styleClass="#{ itemMonitorado1.status ? 'RedMessage' : 'GreenMessage'}" />
</h:column>
<h:column>
<h:outputText style=" font-weight: bold;" value="#{itemMonitorado1.detalhe}"/>
</h:column>
</h:dataTable>
<h:commandButton action="#{monitorBean.monitorar}" value="Atualizar" styleClass="botao"></h:commandButton>
</h:form>
</CENTER></BODY></HTML>
</f:view>