[RESOLVIDO] Aplicação funciona no eclipse, mas não funciona no servidor

Olá

Fiz uma aplicação usando Java e PrimeFaces. No eclipse ela roda perfeitamente, porém quando faço o deploy para o servidor ela não funciona corretamente. Estarei colocando o erro descrito no arquivo log. O servidor que estou utilizando é o tomcat. Estou exportando o arquivo .war pelo próprio eclipse: Export >> WAR file. Estou colocando este arquivo dentro da pasta webapps do tomcat.

30-[details=Summary]This text will be hidden[/details]May-2017 15:37:38.553 SEVERE [http-nio-8080-exec-8] com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError javax.el.PropertyNotFoundException: /index.xhtml @22,52 fileUploadListener="#{etiquetaMB.setFile}": Target Unreachable, identifier ‘etiquetaMB’ resolved to null
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at org.primefaces.component.fileupload.FileUpload.broadcast(FileUpload.java:318)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:755)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

Seria possível que este {etiquetaMB.setFile} esteja de alguma forma não fixo?
Target Unreachable, identifier ‘etiquetaMB’ resolved to null <-
Ele não encontra e seta como nulo.
ele pode não está encontrando porque depois que você joga os arquivos para pasta do tomcat o caminho muda, tem uma pequena possibilidade de só funcionar pela IDE porque o caminho fica correto, e quando está dentro da pasta do tomcat já fica em um caminho diferente.
Também uso tomcat, e nunca tive problemas assim porque uso System.getProperty(“user.dir”) para pegar o diretório da raiz independente de onde esteja.

1 curtida

Cara, desculpa a demora… escrevi a resposta e só hoje me dei conta de que não postei.

Infelizmente não funcionou! Usando o System.getProperty(“user.dir”) o resultado foi o mesmo!

Uma dica pra achar onde está o erro no log: procure por “Caused by”. Cola pra gente o que está dizendo no “Caused by”

pior que não tem… não sei se eu que estou olhando errado, mas onde o apache disparou a exceção ela não tem Caused by

Encontrei a solução… o servidor estava rodando com o java 1.7, e a aplicação foi construída com java 1.8… só questão de atualização