quinta-feira, 22 de dezembro de 2016

Comparator e Comparable: Ordenar com duas propriedades.


public class Permissao implements Serializable, Comparator<Permissao>, Comparable<Permissao>{
        private GrupoAcesso grupoAcesso;
        private Tela tela;

    public int compare(Permissao permissao, Permissao outraPermissao) {
        String menu1 = permissao.getTela().getMenu().getNome().toUpperCase();
        String menu2 = outraPermissao.getTela().getMenu().getNome().toUpperCase();        

        // ordem crescente
        return menu1.compareTo(menu2);        

        // ordem decrescente
        // return menu1.compareTo(menu2);
    }
    
    @Override
    public int compareTo(Permissao o) {
        return this.tela.getNome().compareTo(o.getTela().getNome());
    }
}



public class GrupoAcesso implements Serializable{

       private List<Permissao> permissoes = new ArrayList<Permissao>();

    public List<Permissao> getPermissoes() {
        Collections.sort(permissoes);
        Collections.sort(permissoes, new Permissao());
        return permissoes;
    }
}

sexta-feira, 9 de dezembro de 2016

Habilitar o acesso remoto no Wildfly

Fonte: https://bgasparotto.com/pt/habilitar-o-acesso-remoto-no-wildfly/

Habilitar o acesso remoto no Wildfly

Esse tutorial irá mostrar como habilitar o acesso remoto no Wildfly, de modo que você possa gerenciar seu servidor de aplicação remotamente.

O Problema

Acredito que qualquer um esteja acostumado a instalar o Wildfly em um computador local com uma interface gráfica e navegadores de internet disponíveis. Deste modo, quando você precisa acessar a página administrativa do seu Wildfly através do link http://localhost:8080/ para gerenciar seu servidor de aplicação, tudo funciona como esperado.
Porém, se o Wildfly estiver rodando em um computador remoto e você tentar acessar sua página administrativa através da rede pelo seu endereço de IP ou hostname, como http://54.94.240.170:8080/ por exemplo, você provavelmente verá uma bela mensagem dizendo algo como Esta página da web não está disponível, em outras palavras, o Wildfly disse “Não, obrigado, eu não estou aceitando requisições de outros caras a não ser os que estão em minha máquina local”.

A Primeira Possível Solução

Pularemos direto para a solução mais rápida para habilitar o acesso remoto, mas você poderá encontrar a explicação de como e porque isso funciona ao final deste tutorial.
Antes de continuar, certifique-se de que a máquina que o seu Wildfly está executando está aceitando requisições TCP nas portas 8080 e 9990.
Se o seu Wildfly estiver executando, acesse seu diretório bin e execute os seguintes comandos para pará-lo:
Em seguida, inicie seu Wildfly utilizando o comando abaixo, o qual adiciona os parâmetros que habilitam o acesso remoto a partir de qualquer origem (IP/hostname) à página administrativa.
Pronto!

A Segunda Possível Solução

Como alternativa à adicionar parâmetros ao seu comando de inicialização, você pode editar seu standalone.xml para habilitar o acesso remoto à partir de qualquer origem. Essa abordagem é mais recomendada se você costuma acessar sua página administrativa com frequência, deste modo, você não precisará se lembrar de enviar parâmetros adicionais ao comando de inicialização, como mostrado anteriormente.
Primeiramente, acesse o diretório de configuração de seu Wildfly:
Em seguida, edite o arquivo standalone.xml utilizando seu editor de arquivos predileto e realize as alterações abaixo:
Substitua isso:
Por isso:
Certifique-se de gravar suas alterações e reinicie seu Wildfly:
Feito.

A Explicação

A breve história é que, devido à questões de segurança, o Wildfly não deseja expor seus serviços em portas que podem ser acessadas sem a devida autorização. Um destes serviços é o JMX, o qual é utilizado para gerenciar servidores Java através da porta 9990.
Por padrão, o JMX irá permitir apenas conexões originadas de seu local, como foi possível observar no arquivo standalone.xml. Para alterar este comportamento, você precisa permitir que outros hosts se conectem ao JMX, através de uma das soluções propostas.
Em ambientes de produção e por questões de segurança, tenha cuidado ao expor esse serviço, sendo recomendada a especificação de quais hosts confiáveis poderão acessar o serviço, ao invés de expô-lo a qualquer um, como fizemos neste tutorial.
Espero que ajude. Até mais!