Problemas com InputStream

2 respostas
Thiago_Siqueira

Galera, estou com um probleminha aqui.
Tenho que gravar uma imagem no banco de dados através de um formulário jspx.

Não estou conseguindo salvar a imagem, quando clico no botão “Cadastrar” me retorna o seguinte erro:

java.lang.NullPointerException
        at Java.Texto.cadastra(Texto.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
        at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
        at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        at javax.faces.component.UICommand.broadcast(UICommand.java:387)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18)
        at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:132)
        at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:74)
        at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:31)
        at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
        at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
        at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
        at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:26)
        at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
        at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56)
        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:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
        at java.lang.Thread.run(Thread.java:619)

Minha classe java está da seguinte forma:

public class Texto {

    private String texto;
    public UploadedFile imagem;

    public UploadedFile getImagem() {
        return this.imagem;
    }

    public void setImagem(UploadedFile imagem) {
        this.imagem = imagem;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public String cadastra() {

        try {

            Connection con = Conexao.getConnection();

            System.out.println("\n\nConteúdo: \n\n" + getTexto() + "\n\n");
            InputStream fis = getImagem().getInputStream();
            
            PreparedStatement prepStmt = con.prepareStatement("insert into TBTexto (Texto, Imagem) values (?, ?)");
            prepStmt.setString(1, getTexto());
            prepStmt.setBinaryStream(2, fis, fis.available());
            System.out.println("cadastrou");

            prepStmt.execute();

            prepStmt.close();
            con.close();
            return "sucesso";


        } catch (Exception e) {

            e.printStackTrace();

            return "erro";
        }
    }
}

E Minha página jspx assim:

<ice:form>
                                        <table border="1">
                                            <tr>
                                                <td>
                                                    <ice:outputText value="Teste"/>
                                                </td>
                                                <td>
                                                    <ice:inputText value="#{Texto.texto}"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td colspan="2">
                                                    <t:inputFileUpload rendered="true" storage="file" accept="/tmp/*"  immediate="true" value="#{Texto.imagem}"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td colspan="2">
                                                    <ice:commandButton action="#{Texto.cadastra}" value="Teste"/>
                                                </td>
                                            </tr>
                                        </table>
                                    </ice:form>

Pessoal, poderiam me dar uma luz?

Desde já agradeço

2 Respostas

Thiago_Siqueira

Ninguem?

Thiago_Siqueira

Up!

Criado 11 de outubro de 2010
Ultima resposta 13 de out. de 2010
Respostas 2
Participantes 1