Ayuda al renderizar imagenes

32 views
Skip to first unread message

Pedro Bala

unread,
Dec 25, 2012, 9:14:08 AM12/25/12
to Play Framework Latam
Hola amigos,

en primer lugar Feliz Navidad a todos!!

En segundo lugar era para ver si me podíais ayudar con un problema que
tengo. He desplegado una aplicación en CloudBees que consiste en la
subida y posterior visualización de imágenes. Tengo el módulo crud
donde puedo subir imágenes para construir un galería. Las imágenes las
guardo de la siguiente manera
http://www.lunatech-research.fr/playframework-file-upload-blob

las mapeo como Blob y se guarda el id en base de datos y el archivo
físico se almacena en la carpeta de código como explica el tutorial.
Hasta ahí todo correcto. La cuestión es que cuando pasan unas 24 horas
la aplicación alojada en cloudbess deja de mostrar las imágenes
arrojándome esta exception


@6cmpfbne8
Internal Server Error (500)

Oops: NullPointerException
An unexpected error occured caused by exception NullPointerException:
null

play.exceptions.UnexpectedException: Unexpected Error
at play.mvc.results.RenderBinary.apply(RenderBinary.java:175)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:246)
at play.server.ServletWrapper
$ServletInvocation.execute(ServletWrapper.java:557)
at play.Invoker$Invocation.run(Invoker.java:278)
at play.server.ServletWrapper
$ServletInvocation.run(ServletWrapper.java:548)
at play.Invoker.invokeInThread(Invoker.java:68)
at play.server.ServletWrapper.service(ServletWrapper.java:142)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
at
net.stax.appserver.webapp.RequestMonitorValve.invoke(RequestMonitorValve.java:
35)
at
net.stax.appserver.admin.StaxApplicationQueryValve.invoke(StaxApplicationQueryValve.java:
49)
at
net.stax.appserver.webapp.RequestSetupValve.invoke(RequestSetupValve.java:
31)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:
647)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
293)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
859)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
489)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at play.mvc.results.RenderBinary.apply(RenderBinary.java:167)
... 23 more
14:06:01,433 ERROR ~

@6cmpfbne9
Internal Server Error (500)

Oops: NullPointerException
An unexpected error occured caused by exception NullPointerException:
null

play.exceptions.UnexpectedException: Unexpected Error
at play.mvc.results.RenderBinary.apply(RenderBinary.java:175)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:246)
at play.server.ServletWrapper
$ServletInvocation.execute(ServletWrapper.java:557)
at play.Invoker$Invocation.run(Invoker.java:278)
at play.server.ServletWrapper
$ServletInvocation.run(ServletWrapper.java:548)
at play.Invoker.invokeInThread(Invoker.java:68)
at play.server.ServletWrapper.service(ServletWrapper.java:142)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
at
net.stax.appserver.webapp.RequestMonitorValve.invoke(RequestMonitorValve.java:
35)
at
net.stax.appserver.admin.StaxApplicationQueryValve.invoke(StaxApplicationQueryValve.java:
49)
at
net.stax.appserver.webapp.RequestSetupValve.invoke(RequestSetupValve.java:
31)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:
647)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
293)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
859)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
489)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at play.mvc.results.RenderBinary.apply(RenderBinary.java:167)
... 23 more


En local no tengo ningun problema a la hora de mostrar las imagenes
independientemente del tiempo que haya pasado despues de almacenarlas.
Alguno tiene idea de que puede estar pasando? Esto solo me pasa en
cloudbess despues de llevar las imagenes unas horas almacenadas.
Necesito ayuda...

Gracias! y un saludo

opensas

unread,
Dec 26, 2012, 9:09:18 AM12/26/12
to play-...@googlegroups.com
feliz navidad a todos!

en cuanto a tu problema, unas preguntas

estas almacenando la info en mysql? 

si reiniciás la app anda todo ok?

tenés alguna manera de ver la info de mysql por fuera de la app de play (algún phpMyAdmin, la consola de mysql o el url de mysql para accederlo dese afuera)

tal vez en los foros de cloudbees te puedan dar una mano

de última, para saber si es un problema de cloudbees, podrías probar desplegando la app en heroku u openshift...

lamento no poder ser de más ayuda :-/

saludos

sas

Pedro Bala

unread,
Jan 3, 2013, 5:44:45 AM1/3/13
to play-...@googlegroups.com
Hola,

me contesto porque ya he conseguido saber lo que ocurría.

Resulta que la plataforma cloudbees no permite almanecear de manera persistente archivos binarios en el directorio del sistema, simplemente se almacenan de manera temporal y duran unas horas.... por eso cuando subia las imagenes se veian bien y al tiempo, despues de que pasara algun recolector de basura o la aplicacion no tuviera trafico ese directorio temporal se borrara y al intentar visualizarlas de nuevo era cuando me daba el nullpointerexpcetion

Aqui esta explicado

http://developer.cloudbees.com/bin/view/RUN/File+system+access

un saludo y gracias por la respuesta opensas
Reply all
Reply to author
Forward
0 new messages