sábado, 27 de dezembro de 2014

PSQLException: ERROR: syntax error at or near "User"

Pessoal..

Hoje tive o erro: PSQLException: ERROR: syntax error at or near "User"

Isso acontece pois a entidade que eu criei se chama User e no PostgreSQL deve existir uma tabela com esse nome ou user é uma palavra reservada.

Então mudei minha entidade para ter outro nome de tabela e não o default:

@Entity
@Table(name="LOGIN_USER")
public class User {

Então funcionou perfeitamente.

Abraço!
Adriano Schmidt

terça-feira, 16 de dezembro de 2014

Failure executing javac

Hoje tive o erro abaixo ao executar um "mvn install"

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project avmais: Compilation failure
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] O sistema nÆo pode encontrar o caminho especificado.

Estava tudo certinho nas minhas variáveis de ambiente e configurações do projeto...

Depois de muita luta vi que o erro foi causado pois no meu pom.xml tinha a seguinte linha:
<maven .compiler.executable="">${env.OPENSHIFT_WILDFLY_DIR}usr/lib/jvm/jdk1.8.0_05/bin/javac</maven>

Após remover essa linha funcionou local.

Abraço!
Adriano Schmidt

segunda-feira, 17 de novembro de 2014

Cuidados com o GIT

Fala pessoal,

Em um projeto nosso foi commitado um arquivo chamado .factorypath o que fez com que aconteceu um erro na máquina de outro desenvolvedor que gastou um tempinho até descobrir o problema.

Um dos motivos foi que esse arquivo não estava no .gitinore, outro motivo foi que o primeiro desenvolvedor não verificou que estava commitando algo que ele não mexeu, outro motivo foi que o segundo desenvolvedor não verificou o que estava baixando.

Então, enviei um e-mail para a equipe de desenvolvimento dando 3 dicas sobre Git para evitarmos problemas:

1) Usem adequadamente o .gitignore, sempre coloquem nele tudo que não deve ser commitado. Coloquei no github um exemplo de .gitinore que deve estar na raiz do projeto. Lembrando que cada projeto tem suas peculiaridades e pode ser um pouco diferente. https://gist.github.com/adrianoschmidt/9ad13b49b702168e4bf8

2) Usem o Git Command Line. O plugin do eclipse é legal, ajuda muito, mas tente usá-lo para coisas simples como commit e push. Se for fazer um merge, reset, stash ou coisas que saem do que você faz com frequência e que você não tem certeza que o plugin do eclipse vai funcionar 100%, use a linha de comando.

3) Tome cuidado! Não commite sem antes olhar o que você está commitando, às vezes você mexeu sem querer num arquivo e não deveria subir ele, às vezes você deu um CTRL+SHIFT+F num arquivo inteiro e no projeto não podia fazer isso. Principalmente se é a primeira vez que você está trabalhando no projeto ou se fez alguma grande alteração, tome muito cuidado. Quando for a primeira vez que commitar num projeto, ou quando fizer grandes alterações ou merges, acesse o git.supero.com.br e verifiquem se o que vocês fizeram está lá certinho, se não desfez algo que outra pessoa fez ou algo assim.


É isso pessoal. Pequenas ações podem evitar grandes problemas : )

Abraço!
Adriano Schmidt

segunda-feira, 10 de novembro de 2014

InternetAccessValidator

Hoje a internet caiu aqui na minha casa...

Eu estava testando se voltava de 5 em 5 minutos... então resolvi fazer um programa Java que fizesse isso pra mim.

Ele verifica se o computador tem acesso à internet. Caso não tenha, tenta novamente após 10 segundos até ter acesso, e quando tiver, fará o computador dar 5 beeps.

Interessante para aprender a executar comandos no sistema operacional e aprender a fazer um beep.

Segue fonte: https://github.com/adrianoschmidt/InternetAccessValidator/blob/master/src/br/com/localhost8080/iav/InternetAccessValidator.java

Abraços!
Adriano Schmidt

sábado, 11 de outubro de 2014

Alterar usuário/senha/url no GIT

Para alterar usuário ou senha de projeto no GIT basta seguir os seguinte passos:

Acesse pelo prompt de comandos a pasta do seu projeto.

Rode o comando abaixo para ver o usuário utilizado:

$ git config --get remote.origin.url
http://AdrianoSchmidt:minhasenha@git.localhost8080.com.br/git/projeto/projeto.git

Rode o comando abaixo para remover o usuário e senha (na verdade remove a URL inteira)

$ git config --unset remote.origin.url

Rode o primeiro comando novamente e veja que não existe mais valor para essa variável

$ git config --get remote.origin.url

Rode o comando abaixo atualizando o usuário ou senha:

$ git config --add remote.origin.url http://AdrianoSchmidt:novasenha@git.localhost8080.com.br/git/projeto/projeto.git

Verifique novamente e veja se está como desejado:

$ git config --get remote.origin.url
http://AdrianoSchmidt:novasenha@git.localhost8080.com.br/git/projeto/projeto.git




Ou rode o comando abaixo e edite direto a propriedade:

$ git config --edit



Abraços!
Adriano Schmidt

quinta-feira, 14 de agosto de 2014

NLS_SORT Oracle

Versão em Português

Today I had problems to order uppercase and lowercase letters in the Oracle database.

Running the following command solved the problem:
ALTER SESSION SET NLS_SORT = WEST_EUROPEAN;

This problem occurred in the client environment but not locally because the NLS_SORT parameter was setted to "BINARY" (responsible for sorting [AZ to az]), and what we needed it to be the "WEST_EUROPEAN" [Aa to Zz] standard.

The trigger below changes the value of the NLS_SORT parameter whenever a session starts in the schema. Do not forget to change the schema name.

create or replace trigger PARAM_SESSION_TRIG
after logon
on NomeDoSchema.schema
begin
execute immediate 'ALTER SESSION SET NLS_SORT=WEST_EUROPEAN';
end;

Kind regards!
Adrian Schmidt

NLS_SORT Oracle

English version

Hoje tive problemas com ordenação entre letras maiúsculas e minúsculas no banco de dados Oracle.

Executando o comando abaixo resolveu:
ALTER SESSION SET NLS_SORT=WEST_EUROPEAN;

Este problema aconteceu no ambiente do cliente mas não localmente, pois o parâmetro nls_sort estava setado como "BINARY" (responsável pela ordenação [AZ a az]), e precisávamos que fosse o padrão "WEST_EUROPEAN" [Aa a Zz] .

A trigger abaixo altera o valor do parâmetro nls_sort sempre que inicia-se uma sessão no schema. Não esqueça de alterar o nome do schema.

create or replace trigger PARAM_SESSION_TRIG
after logon
on NomeDoSchema.schema
begin
execute immediate 'ALTER SESSION SET NLS_SORT=WEST_EUROPEAN';
end;

Abraços!
Adriano Schmidt

quinta-feira, 7 de agosto de 2014

Change JBoss Locale

Versão em português

Hello,

Today I had problems with numeric fields and dates. I typed 20,00 and was displayed 2000. I also had problems with the display of dates.

The problem didn't happen in de development machines, just in homologation machines, because the default locale was different in this environments.

In your eclipse:
- Go to in "Server
- Double-click at JBoss
- Click in "Open Launch Configuration"
- Type at the end of "VM Arguments" field: -Duser.language=pt -Duser.country=BR

But to start JBoss with command line, it doesn't work:
standalone.bat -Duser.language=pt -Duser.country=BR

You need to change the configuration files.

In Windows environments, you must add the following line in the file standalone.conf.bat
set "JAVA_OPTS=%JAVA_OPTS% -Duser.language=pt -Duser.country=BR"

In Linux environments, you must add the following line in the file standalone.conf
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"

Best Regards!
Adriano Schmidt

PS: My English isn't very good, if you see something wrong please let me know.

Mudar Locale do JBoss

English version

Olá,

Hoje tive problemas com campos numéricos e com datas. Eu digitava 20,00 e ele virava 2000 e outras loucuras assim pois trocava vírgula com ponto e vice-versa, também alguns campos de data estavam aparecendo Feb, 08, 2014 e não 08/02/2014.

Nas máquinas dos desenvolvedores não acontecia isto, porém, no ambiente de homologação acontecia. Os desenvolvedores tinham máquina cujo Locale default era pt_BR (português do Brasil) já no servidor era en_US (inglês dos Estados Unidos).

O ideal é você tratar isso na sua aplicação, porém, pode ser resolvido mudando o locale do JBoss.

No eclipse é só você ir na aba servers, dar dois cliques no seu JBoss, clicar em "Open Launch Configuration" e adicionar os seguintes parâmetros em VM Arguments:
-Duser.language=pt -Duser.country=BR

Já quando você for iniciar via linha de comando NÃO pode simplesmente adicionar dessa forma:
standalone.bat -Duser.language=pt -Duser.country=BR

Dessa forma não funciona, é preciso alterar os arquivos de configuração:

Em ambiente windows precisa alterar o arquivo standalone.conf.bat adicionando a linha abaixo após as outras linhas semelhantes a ela:
set "JAVA_OPTS=%JAVA_OPTS% -Duser.language=pt -Duser.country=BR"

Em ambiente linux precisa alterar o arquivo standalone.conf adicionando a linha abaixo ao final do arquivo:
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"

Abraço!
Adriano Schmidt

domingo, 20 de julho de 2014

Atualizar nextval oracle

Pessoal, tenho uma tabela que um monte de gente inseriu dados na mão e não respeitou a sequence.

Então utilizei este script para atualizar o nextval da sequence com o max()+1 da coluna id.


declare
  v_prox_numero number;
  v_numero_atual number;
  v_novo_numero number;
  v_numero number;
 
  v_texto varchar2(100);
begin
 
  select max(t.id)+1
    into v_prox_numero
    from nome_tabela t;
   
  select nome_sequence.nextval
    into v_numero_atual
    from dual;
   
  v_novo_numero := (v_prox_numero - v_numero_atual)+1;
 
  if v_novo_numero > 0 then
    for reg_seq in 1..v_novo_numero loop
       
      select nome_sequence.nextval
      into v_numero
      from dual;
   
    end loop;
  end if;
end;


Créditos à Ana Karina Pereira.

Abraços!
Adriano Schmidt