Põe junisse nisso...
Tinha que chamar uploadpatch antes do init do servlet:
*
public* *void* init(ServletConfig config) {
*try* {
*super*.init(config);
ServletContext context = *this*.getServletContext();
uploadpatch = context.getRealPath("/");
} *catch* (ServletException e) {
// *TODO* Auto-generated catch block
e.printStackTrace();
}
}
Aí funcionou....
Vlw Pessoal!
Em 28 de setembro de 2011 09:40, Mário Júnior <[email protected]>escreveu:
> Como diria um amigo meu: "NullPointerException é junisse heim..."
> Vai na linha 22 e verifique qual a cagada. Provavelmente alguma lib esteja
> faltando, ou está com problemas.
>
> Pelo menos agora já sabe q o problema é Java, e nao do Flex, recomendo o
> GUJ pesquisar possíveis problemas.
>
>
> []'s
>
>
>
>
>
> Em 28 de setembro de 2011 08:34, Re JMD <[email protected]> escreveu:
>
> Se eu posto alguma coisa aqui é porque não achei na net, agora acredito
>> que o conceito de forum ou lista de distribuição é esse!
>>
>> Se postei novamente é porque no email passado a minha duvida não foi
>> sanada e não achei nada a respeito que resolvesse, no inicio deste post
>> coloquei que tentei achar oo arquivo .htaccess para alterar porém no Apache
>> TomCat não achei, essa informação eu achei pesquisando.
>>
>> Cara você mesmo já me deu algumas dicas interessantes em relação a debug
>> na qual está resolvendo boa parte dos problemas que estou tendo. Essa
>> informação eu achei pesquisando e pedindo ajuda!
>>
>> Em 28 de setembro de 2011 08:20, Samuel Facchinello
>> <[email protected]>escreveu:
>>
>>> Bom dia @ReJMD... o tempo que vc demora fazendo um post aqui no forum,
>>> nao seria o mesmo que debugar sua aplicação para ver o que ocorre.
>>>
>>> Não que eu não queira ajudar, mas vc debugando sua aplicação, vc aprende
>>> sozinho com os erros, e talves a solução chegue até mais rápido que
>>> esperando uma resposta aqui no forum.
>>>
>>> Na internet existem inumeros exemplos de como fazer o upload de arquivos,
>>> e eu diria q a grande maioria funciona, pois foi dela (a internet) que
>>> peguei o que uso aqui.
>>>
>>> Inclusive procurando aqui no forum você vai achar muita coisa sobre
>>> isso!! (ex: seu topico
>>> https://groups.google.com/forum/#!msg/flexdev/dJUwfox6V6g/8yXk2d6o958J)
>>>
>>>
>>> Novamente digo aqui: eu quero sim ajudar as pessoas, mas as pessoas
>>> também podem "se virar" um pouco sozinhas!! Antes de perguntar, pesquise
>>> aqui no forum, provavelmente alguem ja teve o mesmo problema!!
>>>
>>>
>>>
>>> Att,
>>> Samuel Facchinello
>>> http://desenvolvendoemflex.blogspot.com
>>> Joinville - SC
>>>
>>>
>>>
>>> Em 28 de setembro de 2011 08:11, Re JMD <[email protected]> escreveu:
>>>
>>> O Outro erro foi esse:
>>>>
>>>> Sep 28, 2011 8:07:02 AM org.apache.catalina.core.StandardWrapperValve
>>>> invoke
>>>> SEVERE: Allocate exception for servlet FileUploadServlet
>>>> java.lang.NullPointerException
>>>> at
>>>> javax.servlet.GenericServlet.getServletContext(GenericServlet.java:160)
>>>> at FileUploadServlet.<init>(FileUploadServlet.java:22)
>>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>> Method)
>>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
>>>> Source)
>>>> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
>>>> Source)
>>>> at java.lang.reflect.Constructor.newInstance(Unknown Source)
>>>> at java.lang.Class.newInstance0(Unknown Source)
>>>> at java.lang.Class.newInstance(Unknown Source)
>>>> at
>>>> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116)
>>>> at
>>>> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
>>>> at
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
>>>> 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
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>> at
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
>>>> at
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>> at
>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>> at java.lang.Thread.run(Unknown Source)
>>>>
>>>> Em 28 de setembro de 2011 07:42, Re JMD <[email protected]> escreveu:
>>>>
>>>> Mário ainda não não fiz a pagina HTML no log do servidor deu o
>>>>> seguinte erro:
>>>>>
>>>>> Sep 28, 2011 7:41:07 AM org.apache.catalina.core.StandardWrapperValve
>>>>> invoke
>>>>> INFO: Servlet FileUploadServlet is currently unavailable
>>>>>
>>>>>
>>>>> Em 27 de setembro de 2011 21:00, Mário Júnior
>>>>> <[email protected]>escreveu:
>>>>>
>>>>> Primeira dica: Toda app Java q se respeita TEM QUE TER LOG! :D
>>>>>> ficar dando e.printStackTrace() nao é bonito de se ver. Recomendo usar
>>>>>> o log4j, é muito fácil usa-lo e configura-lo. Assim vc fica com um
>>>>>> arquivo
>>>>>> .log próprio para sua aplicação, e mesmo no servidor de produção vc
>>>>>> consegue
>>>>>> conferir tudo oq acontece na sua app.
>>>>>>
>>>>>> Segunda dica: Faça uma pagina simples em html mesmo com um form e um
>>>>>> input file e tente fazer o upload. Se der erro, é pq o problema está no
>>>>>> back-end, isso elimina a hipótese de ser no Flex.
>>>>>>
>>>>>> Terceira dica: TODO JEE Container possui um log "genérico". Pesquise
>>>>>> no seu servidor, dentro da pasta do tomcat dentro uma pastinha chamada de
>>>>>> "log", verifique lá oq está sendo impresso pelo seu e.printStackTrace().
>>>>>>
>>>>>>
>>>>>> []'s
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Em 27 de setembro de 2011 19:40, Re JMD <[email protected]>escreveu:
>>>>>>
>>>>>>> Pessoal,
>>>>>>>
>>>>>>> Na minha aplicação tenho um upload com flex e servlet java no qual
>>>>>>> executo tranquilo quando estou rodando a aplicação no Eclipse+Flex
>>>>>>> quando
>>>>>>> passso para o meu servidor tomcat está dando o famoso erro:
>>>>>>>
>>>>>>> Error #2044: IOErrorEvent: não manipulado. text=Error #2038: Erro do
>>>>>>> arquivo de E/S.
>>>>>>>
>>>>>>> Tentei achar o arquivo .htaccess para alterar porém no Apache TomCat
>>>>>>> não achei.
>>>>>>>
>>>>>>> Alguém já passou por esse problema?
>>>>>>>
>>>>>>>
>>>>>>> *private* *var* fileRef:FileReference;
>>>>>>>
>>>>>>> *//Acesso Local*
>>>>>>>
>>>>>>> *private* *var* request:URLRequest = *new* URLRequest (*
>>>>>>> "FileUploadServlet"*);
>>>>>>>
>>>>>>> *//Acesso Servidor*
>>>>>>>
>>>>>>> *//private var request:URLRequest = new URLRequest
>>>>>>> ("/FileUploadServlet");*
>>>>>>>
>>>>>>> *private* *function* init():*void* {
>>>>>>>
>>>>>>> fileRef =
>>>>>>> *new* FileReference();
>>>>>>>
>>>>>>> fileRef.addEventListener(Event.SELECT, fileRef_select);
>>>>>>>
>>>>>>> fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress);
>>>>>>>
>>>>>>> fileRef.addEventListener(Event.COMPLETE, fileRef_complete);
>>>>>>>
>>>>>>> processarRazao.enabled=
>>>>>>> *false*;
>>>>>>>
>>>>>>> progressBar.visible =
>>>>>>> *false*;
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> *private* *function* browseAndUpload():*void* {
>>>>>>>
>>>>>>> *var* fileFilter:FileFilter = *new* FileFilter(*"XLS(*.xls)"*,*
>>>>>>> "*.xls"*);
>>>>>>>
>>>>>>> *var* fileTypes:Array = *new* Array(fileFilter);
>>>>>>>
>>>>>>> fileRef.browse(fileTypes);
>>>>>>>
>>>>>>> message.text =
>>>>>>> *""*;
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> *private* *function* fileRef_select(evt:Event):*void* {
>>>>>>>
>>>>>>> *try* {
>>>>>>>
>>>>>>> *//message.text = "size (bytes): " +
>>>>>>> numberFormatter.format(fileRef.size);*
>>>>>>>
>>>>>>> fileRef.upload(request);
>>>>>>>
>>>>>>> }
>>>>>>> *catch* (err:Error) {
>>>>>>>
>>>>>>> *trace*(err.getStackTrace())
>>>>>>>
>>>>>>> message.text =
>>>>>>> *"ERROR: zero-byte file"*;
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> Servlet Java:
>>>>>>>
>>>>>>> import java.io.File;
>>>>>>> import java.io.IOException;
>>>>>>> import java.util.Iterator;
>>>>>>> import java.util.List;import javax.servlet.ServletException;
>>>>>>> import javax.servlet.http.HttpServlet;
>>>>>>> import javax.servlet.http.HttpServletRequest;
>>>>>>> import javax.servlet.http.HttpServletResponse;
>>>>>>> import org.apache.commons.fileupload.FileItem;
>>>>>>> import org.apache.commons.fileupload.disk.DiskFileItemFactory;
>>>>>>> import org.apache.commons.fileupload.servlet.ServletFileUpload;
>>>>>>>
>>>>>>>
>>>>>>> public class FileUploadServlet extends HttpServlet{
>>>>>>>
>>>>>>>
>>>>>>> private static final long serialVersionUID = -3809781585154857442L;
>>>>>>> //Acesso Local
>>>>>>> //private String uploadpatch =
>>>>>>> getServletContext().getRealPath("/WEB-INF/teste");
>>>>>>>
>>>>>>> private String uploadpatch
>>>>>>> =this.getServletContext().getRealPath("//");
>>>>>>> //Acesso Servidor
>>>>>>> //private String uploadpatch = "/classes/";
>>>>>>> public static final int maxPostSize = 100*1024*1024;
>>>>>>>
>>>>>>> public FileUploadServlet (){
>>>>>>> super();
>>>>>>> }
>>>>>>>
>>>>>>> protected void processRequest(HttpServletRequest request,
>>>>>>> HttpServletResponse response) throws Exception{
>>>>>>>
>>>>>>> try {
>>>>>>> response.setContentType("text/html;charset=UTF-8");
>>>>>>>
>>>>>>> DiskFileItemFactory factory = new DiskFileItemFactory();
>>>>>>> factory.setSizeThreshold(4096);
>>>>>>>
>>>>>>> ServletFileUpload upload = new ServletFileUpload(factory);
>>>>>>> upload.setFileSizeMax(maxPostSize);
>>>>>>>
>>>>>>> List<FileItem> fileItens= upload.parseRequest(request);
>>>>>>> Iterator<FileItem> iter = fileItens.iterator();
>>>>>>>
>>>>>>> while (iter.hasNext()){
>>>>>>> FileItem item = iter.next();
>>>>>>> if(!item.isFormField()){
>>>>>>>
>>>>>>> item.write(new File(uploadpatch + item.getName()));
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> } catch (Exception e) {
>>>>>>> throw e;
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> protected void doGet(HttpServletRequest request, HttpServletResponse
>>>>>>> response)
>>>>>>> throws ServletException, IOException{
>>>>>>>
>>>>>>> try {
>>>>>>>
>>>>>>> processRequest(request, response);
>>>>>>>
>>>>>>> } catch (Exception e) {
>>>>>>> e.printStackTrace();
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> protected void doPost(HttpServletRequest request,
>>>>>>> HttpServletResponse response)
>>>>>>> throws ServletException, IOException{
>>>>>>>
>>>>>>> try {
>>>>>>>
>>>>>>> processRequest(request, response);
>>>>>>>
>>>>>>> } catch (Exception e) {
>>>>>>> e.printStackTrace();
>>>>>>> }
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> public void destroy(){
>>>>>>>
>>>>>>> super.destroy();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> Web.xml
>>>>>>>
>>>>>>> <servlet>
>>>>>>>
>>>>>>> <description>
>>>>>>>
>>>>>>> </description>
>>>>>>>
>>>>>>> <display-name>
>>>>>>>
>>>>>>> FileUploadServlet
>>>>>>> </display-name>
>>>>>>>
>>>>>>> <servlet-name>FileUploadServlet</servlet-name>
>>>>>>>
>>>>>>> <servlet-class>
>>>>>>>
>>>>>>> FileUploadServlet
>>>>>>> </servlet-class>
>>>>>>>
>>>>>>> </servlet>
>>>>>>>
>>>>>>> <servlet-mapping>
>>>>>>>
>>>>>>> <servlet-name>FileUploadServlet</servlet-name>
>>>>>>>
>>>>>>> <url-pattern>/FileUploadServlet</url-pattern>
>>>>>>>
>>>>>>> </servlet-mapping>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>> [email protected]
>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>> [email protected]
>>>>>>> Mais opções estão disponíveis em
>>>>>>> http://groups.google.com/group/flexdev
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mario Junior
>>>>>> http://blog.mariojunior.com/
>>>>>> @mariojunior
>>>>>>
>>>>>> --
>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>> [email protected]
>>>>>> Para sair da lista, envie um email em branco para
>>>>>> [email protected]
>>>>>> Mais opções estão disponíveis em
>>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>>
>>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> Mario Junior
> http://blog.mariojunior.com/
> @mariojunior
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev