[Resolvido] Problemas com publicação JSF na integrator (Redirect)

Bom dia pessoal,

Estou tendo um problema ao publicar uma aplicação que utliliza JSF. O problema que aparentemente nenhum redirect funciona no servidor, ao clicar em um commandlink ou commandbutton que faça um redirect, a página simplemente faz um reload.

Alguém tem idéia do que poderia ser? Em ambiente local tudo funciona.

Obrigado desde já.

estranho… :S

Como você ta fazendo o redirecionamento?

Da pra postar o codigo de um return que você testou e não funcionou?

aqui o método que eu chamo para editar um registro

public void edit(Register r){
            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("register", r);
            FacesContext.getCurrentInstance().getExternalContext().redirect("/dominio/users/register/register.xhtml");
    }

A tela da um refresh mas não é redirecionada para register.xhtml

Fiz uns testes para tentar identificar o problema e aparentemente é o próprio servidor que está barrando os redirects. Segue abaixo o teste realizado:
Estrutura
index.xhtml
teste/
-------pag2.xhtml

index.html

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form>
            <h:commandLink action="${teste.redirecionar}" value="Clique" />
        </h:form>
    </h:body>
</html>

teste/pag2.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form>
            <h:commandLink action="${teste.redirecionar2}" value="Voltar" />
        </h:form>
    </h:body>
</html>

ManagedBean Teste

@Named
@RequestScoped
public class Teste {

    public void redirecionar() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("/Teste-1.0-SNAPSHOT/teste/pag2.xhtml");
        } catch (IOException ex) {
            Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void redirecionar2() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("/Teste-1.0-SNAPSHOT/index.xhtml");
        } catch (IOException ex) {
            Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Por favor, alguém já passou por isto? Local os redirects funcionam normalmente. Cheguei a conclusão de ser algo no servidor, pois baixei a pasta do JBoss deles pra minha máquina e funcionou também.

Alguém tem idéia do que pode estar impedindo os redirects?

Obrigado

Cara eu faço redirecionamento com o retorno da função,

assim:

public String redirecionar() {  
      
      return("/Teste-1.0-SNAPSHOT/teste/pag2.xhtml?faces-redirect=true");  
    
}

e nunca tive esse problema… =(

tentei desta forma também e não funcionou.

também num é falta dos “()” na camada da função?

tipo

&lt;h:commandLink action="#{teste.redirecionar()}" value="Clique" /&gt;  

Quando tento redirecionar retornando a String me dá este erro

Unable to find matching navigation case with from-view-id '/index.xhtml' for action '${teste.redirecionar}' with outcome '/Teste-1.0-SNAPSHOT/teste/pag2.xhtml?faces-redirect=true' 

Adicionando os parenteses na chamada também dá o mesmo erro.

Entrei em contato com o suporte da Integrator e o problema era na configuração do protocolo AJP/1.3 do JBoss.

As formas de redirects estão normais agora sem fazer nenhuma alteração no código.

Obrigado a todos

=)

menos mau então…