Boa tarde pessoal, estou com um problema, que naum consegui localizar uma solução ainda. Após ser apertado do botão de novo da minha aplicação, a tela fica congelada, já debuguei o código porém a aplicação realizada tudo que esta dentro do metodo que está mapeado para este botão, porém qnd saí deste metódo a aplicação fica travada em uma classe chamada: JIoEndpoint$Worked.run().
código da JSF:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
template="/WEB-INF/paginas-genericas/template.xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<ui:define name="body">
<f:view locale="#{LoginBB.idiomaPadrao.siglaIdioma}">
<a4j:keepAlive beanName="ServicoBB" />
<h:form id="mainForm">
<rich:toolBar id="mainToolBar" itemSeparator="line"
style="width:100%;">
<rich:toolBarGroup location="left">
<!-- CHANGE -->
<h:outputLabel value="#{bundleApplication.TITLE_Servico}"
styleClass="bg" />
</rich:toolBarGroup>
<rich:toolBarGroup location="right">
<a4j:commandLink id="toolBtnNovo" action="#{ServicoBB.new_}"
reRender="mainForm" oncomplete="highlightDiv()">
<h:graphicImage id="imgBtnNovo" url="../resources/img/new.gif"
style="border: 0px; cursor: pointer;" />
<h:outputLabel for="imgBtnNovo" value="#{bundleGeneral.OPT_Novo}"
style="cursor: pointer;" />
</a4j:commandLink>
<rich:toolTip for="toolBtnNovo"
value="#{bundleGeneral.TIT_ToolbarNovo}" />
</rich:toolBarGroup>
<rich:toolBarGroup location="right">
<a4j:commandLink id="toolBtnSalvar" action="#{ServicoBB.save}"
reRender="fieldsPanel, dataTable">
<h:graphicImage id="imgBtnSalvar" url="../resources/img/save.gif"
style="border: 0px; cursor: pointer;" />
<h:outputLabel for="imgBtnSalvar"
value="#{bundleGeneral.OPT_Salvar}" style="cursor: pointer;" />
</a4j:commandLink>
<rich:toolTip for="toolBtnSalvar"
value="#{bundleGeneral.TIT_ToolbarSalvar}" />
</rich:toolBarGroup>
</rich:toolBar>
<h:panelGrid id="panelMsg" style="height:45px;">
<rich:messages errorClass="mensagemErro"
warnClass="mensagemSuccess" infoClass="mensagemInfo" id="mensagem" />
</h:panelGrid>
<rich:effect name="highlightDiv" for="conteudoint" type="Highlight"
params="duration:1.0" />
<rich:panel id="fieldsPanel" style="width:100%;">
<br />
<div id="contentDiv">
<!-- CHANGE -->
<h:panelGrid border="0"
columns="2"
style="width:100%;"
columnClasses="col1_perfil2, col2_perfil2">
<h:outputLabel for="codServico"
value="#{bundleApplication.LBL_CodServico}: " />
<h:inputText id="codServico"
value="#{ServicoBB.servicoTO.codServico}" style="width:90%; "
disabled="true" readonly="true" />
<h:outputLabel for="desServico"
value="*#{bundleApplication.LBL_DesServico}: " />
<h:inputText id="desServico"
value="#{ServicoBB.servicoTO.desServico}" style="width:90%; " />
<h:outputLabel id="codRespServicoLBL" style="width:50%; "
value="#{bundleApplication.LBL_codRespServico}: " />
<h:panelGrid columns="3" style="width:90%; border: 0;"
columnClasses="col1_responsavel, col2_responsavel, col3_responsavel">
<h:inputText id="codSolicitante" value="#{ServicoBB.servicoTO.codResponsavelServico}"
style="width:90%" />
<a4j:commandLink id="btnSolicitante" action="#{ServicoBB.geraListResp}"
oncomplete="Richfaces.showModalPanel('panelSelecionarResponsavel')"
reRender="formSelecionarSolicitante">
<h:graphicImage id="imgBtnSolicitante" url="../resources/img/usr.gif"
style="border: 0px; cursor: pointer; padding-top: 3px;" />
<rich:toolTip for="imgBtnSolicitante"
value="#{bundleApplication.TIT_PesquisarUsuario}" />
</a4j:commandLink>
<a4j:commandLink id="btnLimparSolicitante"
action="#{ServicoBB.limpaResponsavel}"
reRender="codSolicitante">
<h:graphicImage id="imgBtnLimparSolicitante"
url="../resources/img/icone_borracha.gif"
style="border: 0px; cursor: pointer; padding-top: 3px; padding-left:2px;" />
<rich:toolTip for="imgBtnLimparSolicitante"
value="#{bundleApplication.TIT_LimparResponsavelSelecionado}" />
</a4j:commandLink>
</h:panelGrid>
<h:outputLabel id="flAvisoEvento_cons"
value="*#{bundleApplication.LBL_FlagAvisoEvento}:" />
<h:selectOneRadio id="flgAtivo_cons" style="width:60%; "
value="#{ServicoBB.servicoTO.flgAvisoEvento}"
styleClass="semBorda" >
<f:selectItem itemLabel="#{bundleGeneral.VALUE_Sim}"
itemValue='S' />
<f:selectItem itemLabel="#{bundleGeneral.VALUE_Nao}"
itemValue='N' />
</h:selectOneRadio>
<h:outputLabel id="codArqBat_LBL"
value="#{bundleApplication.LBL_CodArqBat}: " />
<h:inputText id="codArqBat"
value="#{ServicoBB.servicoTO.codArqquivoBat}" style="width:90%; " />
<h:outputLabel id="dirRemessa_LBL"
value="#{bundleApplication.LBL_DirArqBat}: " />
<h:inputText id="dirArqBat"
value="#{ServicoBB.servicoTO.dirRemessa}" style="width:90%; " />
<h:outputLabel id="extArqAnexado_LBL"
value="#{bundleApplication.LBL_ExtArqAnexado}: " />
<h:inputText id="extArquivoAnexado"
value="#{ServicoBB.servicoTO.extArquivoAnexado}"
style="width:90%; " />
<h:outputLabel id="flgRemoverArquivo_LBL"
value="*#{bundleApplication.LBL_FlagRemoverArquivo}:" />
<h:selectOneRadio id="flgRemoverArquivo" style="width:60%"
value="#{ServicoBB.servicoTO.flgRemoverArquivo}"
styleClass="semBorda">
<f:selectItem itemLabel="#{bundleGeneral.VALUE_Sim}"
itemValue='S' />
<f:selectItem itemLabel="#{bundleGeneral.VALUE_Nao}"
itemValue='N' />
</h:selectOneRadio>
<h:outputLabel id="renomearArquivo_LBL"
value="#{bundleApplication.LBL_RenomearArquivo}: " />
<h:selectOneMenu id="renArquivo" style="width:90%; "
value="#{ServicoBB.servicoTO.flgRenomearArquivo}"
immediate="true">
<f:selectItem itemValue="" itemLabel=" " />
<f:selectItems value="#{ServicoBB.renArqListSelectItem}" />
<f:converter converterId="genericConverter" />
</h:selectOneMenu>
<h:outputLabel id="dirArqRetorno_LBL"
value="#{bundleApplication.LBL_DirArqRetorno}: " />
<h:inputText id="dirArquivoRetorno"
value="#{ServicoBB.servicoTO.dirRetorno}" style="width:90%; " />
<h:outputLabel id="msgSucessoOperacao_LBL"
value="*#{bundleApplication.LBL_MsgSucessoOperacao}:" />
<h:inputTextarea id="msgSucessoOperacao"
value="#{ServicoBB.servicoTO.mensagemSucesso}" style="width:90%" />
<h:outputLabel id="extArqRetorno_LBL"
value="#{bundleApplication.LBL_ExtArqRetorno}: " />
<h:inputText id="extArquivoRetorno"
value="#{ServicoBB.servicoTO.exArquivoRetorno}"
style="width:90%; " />
<h:outputLabel id="extArqErro_LBL"
value="#{bundleApplication.LBL_ExtArqErro}: " />
<h:inputText id="extArquivoErro"
value="#{ServicoBB.servicoTO.exArquivoErro}" style="width:90%; " />
<h:outputLabel id="chkDiasServ_LBL"
value="#{bundleApplication.LBL_DiasServ}: " />
<h:selectManyCheckbox id="diasServ" style="width:90%"
value="#{ServicoBB.listStringDiasServ}" layout="pageDirection"
styleClass="acessoQuadroAcoes" >
<f:selectItems value="#{ServicoBB.listDiasServSelectItem}" />
</h:selectManyCheckbox>
<h:outputLabel id="flAtivo_LBL"
value="*#{bundleGeneral.LBL_Ativo}:" />
<h:selectOneRadio id="flgAtivo" style="width:60%"
value="#{ServicoBB.servicoTO.flgAtivo}" styleClass="semBorda">
<f:selectItem itemLabel="#{bundleGeneral.VALUE_Sim}"
itemValue='S' />
<f:selectItem itemLabel="#{bundleGeneral.VALUE_Nao}"
itemValue='N' />
</h:selectOneRadio>
</h:panelGrid></div>
<br />
</rich:panel>
</h:form>
</f:view>
</ui:define>
</ui:composition>
Código do BB:
@Component("ServicoBB")
@Scope("request")
public class ServicoBB extends GenericBB{
private static final long serialVersionUID = 1L;
IServicoDAO servicoDAO;
IServicoService servicoService;
@Autowired
IDiasServicoDAO diasServicoDAO;
private ServicoTO servicoTO;
private Servico servico;
private List<DiasServicoTO> diasServicoList;
private List<Servico> servicoList;
private List<String> renArqList;
private List<SelectItem> renArqListSelectItem;
private List<Integer> listDiasServ;
private List<String> listStringDiasServ;
private List<SelectItem> listDiasServSelectItem;
private List<Usuario> respServList;
private boolean isEdicao;
// actions
@Autowired
public ServicoBB(IServicoDAO servicoDAO, IServicoService servicoService){
setLogger(Logger.getLogger(ServicoBB.class));
setBundle(super.getBundle("bundle.application.Application"));
this.servicoDAO = servicoDAO;
this.servicoService = servicoService;
isEdicao = Boolean.FALSE;
clean();
}
/**
* Novo cadastro
*/
public void new_() {
isEdicao=Boolean.TRUE;
clean();
}
/**
* Limpa os campos e variaveis
*/
private void clean() {
servicoTO = new ServicoTO();
listStringDiasServ = new ArrayList<String>();
diasServicoList = new ArrayList<DiasServicoTO>();
geraListRenArq();
geraListDiasServ();
}
public void geraListRenArq(){
if(!isEdicao()){
List<SelectItem> lista = new ArrayList<SelectItem>();
lista.add(new SelectItem(0,"N\u00E3o Renomear"));
lista.add(new SelectItem(1,"C\u00F3digo do Parceiro"));
lista.add(new SelectItem(2,"C\u00F3d Parceiro + C\u00F3d Servi\u00E7o"));
lista.add(new SelectItem(3,"C\u00F3d Parceiro + ddmm"));
lista.add(new SelectItem(4,"C\u00F3d Parceiro + ddmm + nsa"));
lista.add(new SelectItem(5,"Nome Resumido + ddmm + nsa"));
setRenArqListSelectItem(lista);
}
}
public void geraListDiasServ(){
if(!isEdicao()){
List<SelectItem> lista = new ArrayList<SelectItem>();
for(int i=0; i <=31; i++) {
lista.add(new SelectItem(i,String.valueOf(i)));
}
setListDiasServSelectItem(lista);
}
}