Tenho um arquivo .jar com vários classes (.class) com seus respectivos códigos fontes(.java). Preciso descompilar e recompilar essas classes no jdk1.4.1(o .jar foi compilado na ver 1.3).
Quando vejo o fonte o pacote é:
package com.sun.forte4j.persistence;
e neste pacote estão as classes:
-ConnectionFactory (tem o .java)
-ConnectionFactoryImpl(tem o .java)
-InstanceCallbacks(só tem o .class)
-JDODataStoreException(só tem o .class)
TEnho uns 6 .jar para migrar para jdk1.4.1. Como posso fazer isso ou onde posso conseguir essar classes.
que estão no lib da minha aplicação. Algumas das minhas classes persistentes (model) fazem uma ligação direta com o banco via mapeamento(essas eu consegui recompilar na versão 1.4.1).O motivo é q quero hospedar minha aplicação num servidor web(ena roda na minha intranet) e o servidor web me oferece o jdk 1.4.1, simulei o ambiente deles local e naum funcionou.
K
kozak
Kra, acho muito trabalho, mas a forma “braçal” de se fazer este processo é assim:
Descompacta o arquivo JAR utilizando um descompactador de arquivos qualquer… (winzip/winrar/Braszip até o visualizador de arquivos do lotus notes)
Descompila os class utilizando o JAD (descompilador).
Apesar do código ficar ajeitado, o nome das variáveis fica muito bagunçado.
Se existe outra forma de descompilar eu desconheço, mas deve haver.
C
cv1
Hmmm, Xerces. Pode ficar tranquilo que o fato de o treco ter sido compilado no javac da 1.3 nao faz a menor diferenca, mas o seu erro pode estar sendo causado pela bosta do parser, e algum conflito de versao.
Que erro tah dando?
F
feaupi
cv olha ai o erro …estou tentando instalar o ambiente em outra máquina…pois acho q o meu ambiente tá bichado…segue o erro:
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 30 in the jsp file: /menu.jsp
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:120)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:315)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:326)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:182)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2397)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:536)
Apache
o erro diz que o problema é q ela aguarda um ponto…porém no jdk1.3.1 não dá esse erro.
M
Mauricio_Linhares
Rapaz, isso é erro de compilação do JSP, posta esse JSP aí pro povo olhar.
F
feaupi
Maurício,
Valeu pelo alô vou postar o código mas creio que não é problema com o jsp pois naum achei nenhum erro.
<html><head><title>SistemaAcadêmicodaEscolaNaval1.4</title><metahttp-equiv="Content-Type"content="text/html; charset=iso-8859-1"><scriptTYPE="text/javascript"LANGUAGE="JavaScript"><!--SRC="include/scripts.js">--></script><linkrel="stylesheet"href="include/scripts_menu.css"type="text/css"><%@pagecontentType="text/html"import="en.model.*,[b]Util[/b]"%><%StringrequestIp=(String)request.getRemoteAddr();System.out.println("meu remote ip>>>>"+requestIp);Stringfaixa[]={"10.0.16","10.0.17","10.0.18","10.0.24","10.0.31","127.0.0"};booleanautorizado=false;for(inti=0;i<faixa.length;i++){if(requestIp.substring(0,7).equals(faixa[i]))autorizado=true;}//boolean autorizado = true;if(autorizado){StringusuarioLogado=(String)request.getSession().getAttribute("usuarioLogado");%></head><bodybgcolor="#FFFFFF"leftmargin="0"topmargin="0"marginwidth="0"marginheight="0"text="#FFFFFF"vlink="#000000"link="#000000"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"height="100%"><%if(usuarioLogado=="erro"){usuarioLogado=null;%><SCRIPT>alert("Senha incorreta, verifique Caixa alta ou baixa e tente novamente.");</SCRIPT><%}%><%=Util.montaMenu((String)request.getSession().getAttribute("usuarioLogado"))%><%if(usuarioLogado!=null){%><tr><TD></TD><td></br><b><ahref='Logout'target='leftFrame'class='menu'><center>[Logout]</b><b><ahref='AlterarSenha'target='mainFrame'class='menu'><center>[AlterarSenha]</b><center><%=usuarioLogado%></b></td></tr><%}else{%><formname='form1'method='post'action='Login'><tr><tdvalign='top'class='tit_menu'colspan='2'><imgsrc='imagens/novo_spacer.gif'width='10'height='6'></td></tr><tr><tdvalign='top'background='imagens/novo_bg_login.jpg'class='menu'colspan='2'height='24'><divalign='center'><imgsrc='imagens/novo_texto_login.jpg'width='64'height='24'></div></td></tr><tr><tdvalign='top'class='menu'colspan='2'bgcolor='#DEDEDE'><divalign='center'>Usuário:<inputtype='text'size='12'style='width:108px;height:17px;font-family:verdana;color:#124986;font-size:10px'name='usuario'maxlength='255'><br>Senha:<inputtype='password'size='12'style='width:108px;height:17px;font-family:verdana;color:#124986;font-size:10px'name='senha'maxlength='255'><br><imgsrc='imagens/novo_spacer.gif'width='50'height='2'><br><inputtype='submit'size='12'style='width:70px;height:22px;font-family:verdana;color:#124986;font-size:10px'name='Login'value='Login'></div></td></tr><tr><tdvalign='top'class='tit_menu'colspan='2'><imgsrc='imagens/pontinho.gif'width='100%'height='3'></td></tr><tr><tdvalign='top'class='tit_menu'colspan='2'><imgsrc='imagens/novo_spacer.gif'width='50'height='20'></td></tr></form><%}}else{%><center><fontcolor='red'><br>Acesso<br>Negado<br>maioresinformações:<br><br>3974-1409</font></center><%/* EscolaNaval en = new EscolaNaval(); SecretariaEscolar se = new SecretariaEscolar(en); se.addLog("Menu","anonimo","tentativa de acesso pelo IP: "+requestIp); en.close();*/}%></table></body><%//en.close();%> </html>
F
feaupi
foi mal…perai…
<%@pagecontentType="text/html"import="en.model.*,Util"%><%StringrequestIp=(String)request.getRemoteAddr();System.out.println("meu remote ip>>>>"+requestIp);Stringfaixa[]={"10.0.16","10.0.17","10.0.18","10.0.24","10.0.31","127.0.0"};booleanautorizado=false;for(inti=0;i<faixa.length;i++){if(requestIp.substring(0,7).equals(faixa[i]))autorizado=true;}//boolean autorizado = true;if(autorizado){StringusuarioLogado=(String)request.getSession().getAttribute("usuarioLogado");%></head><bodybgcolor="#FFFFFF"leftmargin="0"topmargin="0"marginwidth="0"marginheight="0"text="#FFFFFF"vlink="#000000"link="#000000"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"height="100%"><%if(usuarioLogado=="erro"){usuarioLogado=null;%><SCRIPT>alert("Senha incorreta, verifique Caixa alta ou baixa e tente novamente.");</SCRIPT><%}%><%=Util.montaMenu((String)request.getSession().getAttribute("usuarioLogado"))%><%if(usuarioLogado!=null){%><tr><TD></TD><td></br><b><ahref='Logout'target='leftFrame'class='menu'><center>[Logout]</b><b><ahref='AlterarSenha'target='mainFrame'class='menu'><center>[AlterarSenha]</b><center><%=usuarioLogado%></b></td></tr><%}else{%><formname='form1'method='post'action='Login'><tr><tdvalign='top'class='tit_menu'colspan='2'><imgsrc='imagens/novo_spacer.gif'width='10'height='6'></td></tr><tr><tdvalign='top'background='imagens/novo_bg_login.jpg'class='menu'colspan='2'height='24'><divalign='center'><imgsrc='imagens/novo_texto_login.jpg'width='64'height='24'></div></td></tr><tr><tdvalign='top'class='menu'colspan='2'bgcolor='#DEDEDE'><divalign='center'>Usuário:<inputtype='text'size='12'style='width:108px;height:17px;font-family:verdana;color:#124986;font-size:10px'name='usuario'maxlength='255'><br>Senha:<inputtype='password'size='12'style='width:108px;height:17px;font-family:verdana;color:#124986;font-size:10px'name='senha'maxlength='255'><br><imgsrc='imagens/novo_spacer.gif'width='50'height='2'><br><inputtype='submit'size='12'style='width:70px;height:22px;font-family:verdana;color:#124986;font-size:10px'name='Login'value='Login'></div></td></tr><tr><tdvalign='top'class='tit_menu'colspan='2'><imgsrc='imagens/pontinho.gif'width='100%'height='3'></td></tr><tr><tdvalign='top'class='tit_menu'colspan='2'><imgsrc='imagens/novo_spacer.gif'width='50'height='20'></td></tr></form><%}}else{%><center><fontcolor='red'><br>Acesso<br>Negado<br>maioresinformações:<br><br>3974-1409</font></center><%/* EscolaNaval en = new EscolaNaval(); SecretariaEscolar se = new SecretariaEscolar(en); se.addLog("Menu","anonimo","tentativa de acesso pelo IP: "+requestIp); en.close();*/}%></table></body>
M
Mauricio_Linhares
Cara, Bugou geral! Que diabo é isso?
R
Rafael_Steil
POR FAVOR, quando forem postar partes em HTML, NAO desmarquem o checkbox “Desabilitar HTML”, senao logico que vai dar pau na mensagem :evil:
Alias, usem a funcionaidade de anexar arquivos ao inves de colar tanto codigo assim.
Rafael
F
feaupi
VAleu Rafael…foi mal…
M
Mauricio_Linhares
Todos os métodos que você está chamando nessa classe Util são estáticos? Ela está na raiz do seu classpath?
F
feaupi
mauricio…perai…to ocupado…to no trabalho…
F
feaupi
Cara…eu simplesmente não consigo rodar…quando passo pra jkd1.4.1 …quando retorno minha aplicaçãoa pra jdk1.3.1(q tb é a minha jvm) funciona!!!e aparece esse erro maluco!!!cara tá tudo certo…
M
Mauricio_Linhares
Cara, você não respondeu o que eu perguntei.
O erro que está aparecendo é que ele não está encontrando essa classe aí, porque ele tenta chamar o método estático e pensa que isso é uma variável.
F
feaupi
CV…Como posso resolver esse problema do parser???
F
feaupi
Mauricio,
Todos os métodos são estáticos…e públicos…Util é uma classe que está no diretório WEB-INF da minha aplicação…logo não está na raiz…o cv falou q é erro de parser…deve ser isso pq na versão…1.3.1 roda normalmente…mas…como posso contornar essa situação…q doideira…será q é algum bug da versão1.4.1_07 (épra essa q eu kro migrar). Que loucura!!!
C
cv1
Ok, antes de mais nada, vamos deixar uma coisa bem claro?
NUNCA AUTOMATICAMENTE ASSUMA QUE A CULPA EH DA FERRAMENTA QUE VOCE ESTA USANDO.
Aquele problema de conflito do parser que eu tinha mencionado eh uma das poucas zicas de migracao da 1.3 pra 1.4 que eu conhecia, e tava so jogando ele no ar pq ele era ate plausivel. Mas, depois desse erro de JSP nao compilando por erro de sintaxe, fica mais facil perceber que vc esta fazendo alguma outra coisa de errado.
Todas as minhas classes não esta importando nada!!!
F
feaupi
Quando desinstá-lo o j2sdk1.4.1 e coloco o 1.3.1 não dá erro e o meu sistema roda normalmente!!!Que cenário triste cv!!!
M
Mauricio_Linhares
feaupi:
Mauricio,
Todos os métodos são estáticos…e públicos…Util é uma classe que está no diretório WEB-INF da minha aplicação…logo não está na raiz…o cv falou q é erro de parser…deve ser isso pq na versão…1.3.1 roda normalmente…mas…como posso contornar essa situação…q doideira…será q é algum bug da versão1.4.1_07 (épra essa q eu kro migrar). Que loucura!!!
Cara, eu to começando a achar que matei a charada… você colocou as classes dentro de “WEB-INF”, certo?
Pois o seu classpath é em “WEB-INF/classes/”, o container não procura classes dentro de “WEB-INF”, ele procura dentro de “WEB-INF/classes/” e nos arquivos .JAR que estejam em “WEB-INF/lib”. Coloque as suas classes dentro de “WEB-INF/classes/” e veja o que acontece.
E como o CV já disse, não adianta culpar a ferramenta. Eu já trabalho com Java a quase um ano e nunca encontrei nenhum bug. O bug era sempre o meu código :mrgreen:
C
cv1
E, se isso nao funcionar, tire essas classes Util e Global da package padrao, ponha elas dentro duma package qualquer (com.foo.utils, sei la) e tente.
F
feaupi
MAuricio eu ja to viajando…as minha classe Util já está dentro de WEB_INF /classes…sinceramente kra…é fogo…ele não está reconhecendo meus imports…Olha q que eu fiz: peguei uma maq qualquer coloquei o jdk1.4.1 junto com o tomcat4.1.10…instalei o interbese interclient e depois coloquei a minha aplicação (q foi compilada no jdk1.3.1) é dá esses erros que postei…
C
cv1
Tire essas classes do pacote default, entao.
D
Diogenes
Tem certeza q tua classe “Util” estah visível pra tua aplicacao?
Peguei a classe util e coloquei dentro da package en.model…consegui chamar o meu menu…excelente!..entretanto surgiu alguns outros problemas que ligam as classes a classe util…ou seja…terei q reorganizar toda a minha aplicação…o que mais me entriga é: o jdk1.3.1 deixa as minhas classes chamarem minha classe Util (pelo import) que está localizada no mesmo diretóri WEB-INF, já o jdk1.4.1 não permitiu. To tendo q reorganizar toda a aplicação(q trabalho louco) mas o problema é esse: PATH!!!..vou refazer todos os meus paths…ESTRANHO…MUITO ESTRANHO. VALEW…OBRIGADO…