segunda-feira, 8 de outubro de 2012

Configuração Jetty required full java sdk

Olá galera, fiquei um tempo sumido, mas estou aqui de novo, postando mais uma solução pra quem está tentando colocar o Jetty 8 como serviço de Windows e está obtendo o erro abaixo:

HTTP ERROR 500

Problem accessing /Exemple/iniciar. Reason:
    PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required

Caused by:

org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required
 at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)
 at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378)
 at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:119)
 at org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:208)
 at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:384)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:542)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
 at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:271)
 at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:98)
 at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
 at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
 at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
 at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
 at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at br.com.simova.bob.system.interceptor.ApplicationSecurityInterceptor.intercept(ApplicationSecurityInterceptor.java:39)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
 at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:499)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
 at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
 at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
 at org.eclipse.jetty.server.Server.handle(Server.java:350)
 at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
 at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
 at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
 at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630)
 at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
 at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
 at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:620)
 at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
 at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)
 at java.lang.Thread.run(Unknown Source)

Powered by Jetty://



Estava eu, vendo no site do Jetty a última atualização do Jetty-8. Resolvi então colocá-lo no ar, quando de repente o erro acima me veio à tona... Pesquisando sobre o erro, descobri que esse erro acontece por que para compilar  arquivos jsp em classes Java, você precisa de um compilador. Você pode adquirir um compilador Java da JVM se você estiver usando um JDK completo, ou a partir de um Jar de terceiros.
Em versões anteriores a 7.5.0, a infra-estrutura JSP fez uso do Java Eclipse Compiler (ecj.jar), que é fornecido em $ JETTY_HOME / lib / jsp.  Para o Jetty-7.5.0, foi atualizado a versão do JSP para jsp-impl-2.1.3.b10 (do Glassfish). Em versões acima, a infra-estrutura JSP SEMPRE tenta adquirir um compilador Java da JVM se a versão do Java é de 1,6 ou acima. Portanto, se você estiver usando um JRE, JSPs não são capazes de compilar e por  isso você deve usar um JDK completo. Alternativamente, você pode pré-compilar JSPs (que é preferível em uma implantação de produção em qualquer caso). 

Se usar o Jetty-7.5.5 ou acima (incluindo versões Jetty-8.x), você pode usar um JDK completo ou um JRE em combinação com um terceiro compilador Java (como ecj que é distribuído em $ JETTY_HOME / lib / jsp ). Para usar o compilador ecj, você precisa definir um SystemProperty. Você pode fazer isso em seu código ou em um arquivo de configuração. 

Coloque este trecho em  seu wrapper.conf:

# Java Additional Parameters
wrapper.java.additional.1=-Dorg.apache.jasper.compiler.disablejsr199=true

Pronto, com isso, seu Jetty irá subir sem problemas!
Espero ter ajudado e até mais!
Daniel Hideki.

sexta-feira, 15 de junho de 2012

Erro no Jetty de "Form too large"

Salve galera!
Hoje deparei com um erro em minha aplicação que ao rodar, dava o erro abaixo:


HTTP ERROR: 500
Form too large339783>200000
Caused by:


java.lang.IllegalStateException: Form too large339783>200000
 at org.eclipse.jetty.server.Request.extractParameters(Request.java:1476)
 at org.eclipse.jetty.server.Request.getParameterMap(Request.java:785)
 at javax.servlet.ServletRequestWrapper.getParameterMap(ServletRequestWrapper.java:177)
 at org.apache.struts2.dispatcher.mapper.DefaultActionMapper.handleSpecialParameters(DefaultActionMapper.java:351)
 at org.apache.struts2.dispatcher.mapper.DefaultActionMapper.getMapping(DefaultActionMapper.java:311)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:370)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139)

Esse erro acontece porque o Jetty vem configurado para que o form tenha o tamanho de até 200000. E quando ultrapassa esse valor, estoura o erro de HTTP 500.
E pra variar, fiquei horas tentando descobrir o que fazer....
Mas, depois de muitas e muitas tentativas, consegui tirar a limitação do form. Mas chega de blablabla e
vamos ao que interessa.
Vá até o diretório em que você instalou o seu Jetty
Abra o arquivo Jetty.xml que se encontra dentro da pasta 'etc'.
Insira o código abaixo:


    <!-- ======================================================================= -->
    <!--             Set max form context size default is 200000 and -1 is undefined size                                --> 
    <!-- ======================================================================= -->
<Call class="java.lang.System" name="setProperty"> 
  <Arg>org.eclipse.jetty.server.Request.maxFormContentSize</Arg>  
  <Arg>-1</Arg>  
</Call>

Eu tirei a limitação setando no Arg -1, mas se você preferir que seu form tenha um tamanho específico (alguns dizem que não é seguro deixar um valor indefinido) , é só setar o valor que você quiser dentro do Arg.
Pronto! Só reiniciar o seu Jetty e ele vai rodar legal.
Espero que tenha ajudado e até a próxima!
Um grande abraço;
Daniel Hideki...



segunda-feira, 4 de junho de 2012

Erro de Utf8Appendable$NotUtf8Exception: !UTF-8

Salve galera!
Depois de muitas noites sem dormir, achamos uma solução pra esse problema chato de UTF-8.
Aqui na empresa, migramos do servidor Tomcat para o Jetty, inclusive escrevi aqui de como instalá-lo como serviço de Windows.
Bom, ao migrarmos para o Jetty, tivemos alguns probleminhas, e um deles foi esse erro:

HTTP ERROR 500 

Problem accessing /ProdutoBoB/Equipamento/salvar.action. Reason: 

!UTF-8 
Caused by: 

org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: !UTF-8 
at org.eclipse.jetty.util.Utf8Appendable.appendByte(Utf8Appendable.java:73) 
at org.eclipse.jetty.util.Utf8Appendable.append(Utf8Appendable.java:23) 
at org.eclipse.jetty.util.UrlEncoded.decodeUtf8To(UrlEncoded.java:470) 
at org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:521) 
at org.eclipse.jetty.server.Request.extractParameters(Request.java:259) 
at org.eclipse.jetty.server.Request.getParameter(Request.java:662) 
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:11
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) 
at org.eclipse.jetty.server.Server.handle(Server.java:349) 
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) 
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:921) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:784) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:223) 
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:59
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) 
at java.lang.Thread.run(Unknown Source) 
Powered by Jetty:// 


Esse é um problema que ocorre por que em meu form, foi inserido em um campo algum caracter do tipo ISO-8859-1 e o Jetty é por default configurado em UTF-8. Tentei mudar essa configuração de várias maneiras, mas todas sem sucesso. Esse erro persistiu bastante, e posso dizer que durante um bom tempo fiquei horrorizado com ele....
Mas, como também somos persistentes, achamos como arrumá-lo e ser feliz!


A nossa primeira tentativa, foi o meu grande companheiro de trabalho Ricardo Yudi (PROGRAMADOR ARRETADO!!!) que descobriu um jeito de arrumar esse erro. Ele descobriu que havia um bug no IE (Internet Explorer) e que com o procedimento abaixo resolve os nossos problemas. Como fazer isso?
Simples, é só seguir a descrição abaixo:


Setar o atributo do formulário com accept-charset="'UTF-8,ISO-8859-1" 

Criar os campos : 

<input type="hidden" value="&#153;" name="bugIE"


E com isso, uma boa parte de nossos problemas resolveram. 
Infelizmente, como eu disse, uma parte apenas se resolveu....
O tão temido erro Utf8Appendable apareceu novamente para azucrinar os meus neurônios....
E depois de estudar e pesquisar muito, (Santo Google!!!) , achei mais alguns ajustes para que ficasse tudo em perfeita harmonia!
Para configurá-lo, siga os passos abaixo:

Bom, antes de mais nada, precisamos começar pela meta tag.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

No form, temos que setar o atributo accept-charset que meu grande companheiro Ricardo ensinou.
<s:form id="fr_principal" name="name" namespace="/NomedoSeuNameSpace" action="nomeDaAction" acceptcharset="UTF-8">    

E claro, não esquecer de colocar o input:
<input type="hidden" value="&#153;" name="bugIE">

Com essa configuração, as suas páginas podem ter caracteres especiais, e não terão mais o problema de UTF-8Appendable.
Fica aí mais uma dica para esse maravilhoso servidor.
Espero que ajude você, que estava passando pelo mesmo problema!
Um grande abraço;
Daniel Hideki...


segunda-feira, 9 de janeiro de 2012

Teclas de Atalho para a IDE Eclipse

Salve galera!

Em meu trabalho, uso a IDE Eclipse, e no dia a dia, senti uma diferença muito grande em utilizar as teclas de atalho.
Com certeza as teclas de atalho tornam a nossa vida um pouquinho mais rápido, tornando nosso dia mais produtivo. Após pesquisar em vários sites, e claro, com uma grande ajuda de meu amigo Rafael Jesus (que considero meu mestre em teclas de atalho dessa maravilhosa IDE), resolvi postar aqui algumas teclas de atalho que uso no meu dia a dia e algumas que venho anotando de sites!
São elas :

Ctrl + Shift + L 
Para acessar um PopUp 
Obtém uma lista de atalhos do Eclipse.

Alt + Shift + S + R
Getters and Setters
Use esta opção para abrir a janela do getter e setter .

Ctrl + 1 
Correção automática
Correções quando há erros de compilação, para criar novas classes, ou mesmo se digitar new NomeDaClasse(); ele cria a variável pra você e até mesmo para criar os getters e setters de uma variável.

Ctrl + 3
Busca automática

Busca um comando ou uma opção de menu baseado no que você escreve.

Ctrl + Shift + T
Encontrar Tipo Java
Descobre onde estão as classes em um workspace mesmo que esteja dentro de um jar.

Ctrl + Shift + R
Encontrar recursos
Use esta opção para procurar arquivos XML, arquivos de texto ou arquivos de qualquer outro tipo que estão em sua área de trabalho.


Ctrl + E
Editor de abrir Suspensa
Apresenta uma janela pop-up e lista os arquivos abertos no momento. Comece a digitar para limitar a lista ou simplesmente usar a seta para baixo.

Ctrl + O
Esboço rápido
Use-o para encontrar um método ou uma variável de membro em uma classe. Comece a digitar para limitar as escolhas. Pressione Ctrl + O uma segunda vez para incluir métodos herdados.

Ctrl + Espaço
Content Assist
Auto-Complete: Completa conteúdo enquanto a edição de código Java.

Ctrl + Shift + Space
Informações de contexto
Se digitar uma chamada de método com vários parâmetros, use isto para mostrar os tipos de parâmetro aplicável. O parâmetro atual onde está o cursor será exibido em negrito.

Ctrl + Shift + O
Organize seus Imports
Após digitar uma classe, usar esse atalho para inserir uma declaração de importação. Isso funciona se várias classes não foram importados também.

F3
Declaração aberta
Desce para a declaração do tipo, método ou a variável de cursor está ligado. Isso funciona bem como um hyperlink browser.

F4
Hierarquia de tipos abertos
Mostrar a hierarquia de tipos (árvore para baixo) ou a hierarquia super tipo (árvore para cima).


Alt + Esquerda
Histórico para trás
Isso funciona como um botão Voltar do navegador.



Alt + Direita
Histórico para a frente
Isso funciona como um botão Avançar do navegador.

Ctrl + L
Ir para a Linha
Ir para um número de linha específica.

Ctrl + Alt + H
Abra Hierarquia de chamada
Mostrar onde um método é chamado. Mostra todas as ocorrência de um atributo ou método dentro de uma classe.

Ctrl + H
Diálogo Open Search
Abre uma janela de busca com opções de pesquisa extensa para os pacotes Java, tipos, métodos e campos.

Alt + Shift + R
Rename – Refactoring
Usar isso para renomear tipo, método ou campo. Todas as referências existentes será reformulado também.

Alt + Shift + L
Extract Local Variable
Use isso para criar uma variável local a partir da expressão selecionada. Isso é útil para dividir as expressões maiores para evitar longas filas.

Alt + Shift + M
Extract Method
Utilize esta opção para extrair um novo método a partir do código existente. A lista de parâmetros e tipo de retorno será criado automaticamente.

Alt + Shift + Up 
Selecione Enclosing Elemento 
Útil para a seleção sensível ao contexto blocos (por exemplo, em torno loop, método de classe, etc) 

Alt + Shift + Down
 
Restore última seleção 
Útil para a seleção sensível ao contexto blocos (por exemplo, em torno loop, método de classe, etc) 

Alt + Shift + Esquerda
 
Select elemento anterior 
Útil para a seleção sensível ao contexto blocos (por exemplo, em torno loop, método de classe, etc) 

Alt + Shift + Direita
Selecionar o próximo elemento
Útil para a seleção sensível ao contexto blocos (por exemplo, em torno loop, método de classe, etc)

Ctrl + Up
Linha de rolagem para cima da linha de deslocamento de classe
Muito útil se você deseja mudar de classe, sem alterar sua posição ou cursor usando o mouse.
 
Ctrl + Down
Linha de rolagem para baixo da linha de deslocamento de classe
Muito útil se você deseja  mudar de classe , sem alterar sua posição ou cursor usando o mouse.

Ctrl + Shift + U 
Ocorrências show em File 
Use para pesquisar dentro do mesmo arquivo – útil para ocorrências de campos privados e métodos.

Alt + Shift + U
Remover Anotações Ocorrências
Use para pesquisar dentro do mesmo arquivo – útil para ocorrências de campos privados e métodos.


Ctrl + Shift + P
Ir para Bracket Matching
Ajuda para encontrar o colchete de fechamento das declarações.

Ctrl + J 
Incremental Find 
A ocorrência de correspondência primeiro é mostrado com cada letra digitada. Pressione novamente e a ocorrência de correspondência seguinte é mostrado.

Ctrl + Shift + J
Reverse Incremental Find
A ocorrência de correspondência primeiro é mostrado com cada letra digitada. Pressione novamente ea ocorrência de correspondência seguinte é mostrado.

Shift + Enter 
Inserir Linha Abaixo  
Inserir uma linha abaixo da linha atual. 

Ctrl + Shift + Enter
Inserir Linha Acima
Inserir uma linha acima da linha atual.

Ctrl +Shift + / 
Adicionar bloco de comentários 
Comentar um grande bloco de código com /* */.

Ctrl + 
Shift + \
Remove comentário de bloco
Descomentar um grande bloco de código com /* */.

Ctrl + Shift + C , Ctrl + /   ou   Ctrl + \
Adicionar comentários 
Comenta ou descomenta o código com /.

Alt +Shift + J
Adicionar  comentários Javadoc
Adiciona um comentário Javadoc no código.

Ctrl + M
Maximize Ver Ativo ou editor
Maximizar a visão atual do editor ou à custa de todos os outros pontos de vista mostrados atualmente. Pressione novamente para restaurar a visão normal.

Ctrl + F6 
Arquivos 
Navegar entre os arquivos abertos. 

Ctrl + F7
 
Abas
Navegar entre as abas da perspectiva.

Ctrl + F8
Perspectiva
Navegar pelas perspectivas abertas.

Ctrl + Alt + Up 
Duplicate Lines
Não parece em um primeiro momento, mas é um grande atalho uma vez que você aprender a usá-lo. Em vez de selecionar, copiar ou colar, basta selecionar e duplicar sem afetar a área de transferência.

Ctrl + Alt + Down
Linhas Copiar
Não parece em um primeiro momento, mas é um grande atalho uma vez que você aprender a usá-lo. Em vez de selecionar, copiar ou colar basta selecionar e duplicar sem afetar a área de transferência.


Alt + /
Conclusão da palavra
Isto é excelente para edição de código ou escrever arquivos de ajuda simples com variáveis ​​e outras palavras que não tenham equivalentes no idioma Inglês. A conclusão da palavra é baseado no conjunto de palavras que já estão presentes no arquivo atual.

Ctrl + I
Indentação correta
Selecionar um bloco de código Java ou um arquivo de classe inteira e use esse atalho para corrigir o seu recuo.

Ctrl + Shift + F
Formatação correta
Selecionar um bloco de código Java ou um arquivo de classe inteira e use esse atalho para formatar o seu código.

Ctrl + Shift + W
Close tabs
Fecha todas as abas.

Ctrl + F11
Run
Roda a aplicação.

Ctrl + Shift + B
Breakpoint
Inserir ou excluir breakpoint na linha onde está o cursor.

Ctrl + 2 + L 
Para criar uma variável local 
Esse atalho é muito útil quando criamos métodos em JPA e que não temos muita certeza de qual é o tipo de variável que será retornada.

Ctrl + 2 + F
Para criar uma variável global 
A mesma funcionalidade acima, mas para criar uma variável global.

Espero que essas teclas de atalho ajudem no seu dia a dia!
Um grande abraço e até o próximo post!!!!

Daniel...

Referencias