GWT-EXT Servlet Tomcat nao funciona

6 respostas
C

Galera preciso muito da ajuda de vc's estou agarrado nisso ja faz um tempo e se não conseguir resolver logo irá comprometer todo o projeto.

tenho um módulo onde o usuário irá fazer uploads, então criei um servlet pra isso

if (!ServletFileUpload.isMultipartContent(request))
			return ;
		
		DiskFileItemFactory factory = new DiskFileItemFactory();
		factory.setRepository(new File(request.getParameter("pasta")));		
		
		ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
				
		List items = null ;
		
		try {
			items = servletFileUpload.parseRequest(request);
		}catch (FileUploadException e) {
			e.printStackTrace();
		}				
		
		Iterator i = items.iterator();
				
		while (i.hasNext()){			
			
			FileItem item = (FileItem)i.next();
			
			if (item.isFormField())				
				continue;		
			
			File file = new File(item.getName());
			String nome = file.getName() ;
			
			file = new File(request.getParameter("pasta") + "/" + nome);						
			
			try {				
				item.write(file);				
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		}

no lado cliente faço a requisição desta forma

String url = "/uploadServlet?pasta=" + pasta+ "/" + Util.strZero(cliente.getCodigo(), 6) + "&caminho=" + txtArquivo.getText();										
														
					panCampo.getForm().submit(url, null, Connection.POST, null, true);

mapeamento no gwt.xml

<servlet class="com.modulos.server.gwt.UploadServlet" path="/uploadServlet"/>

qdo estou rodando a aplicação em Hosted Mode funciona perfeitamente, porém qdo gero o .war no tomcat, a requisição não chega no servlet.

Alguém me ajuda por favor...!!!

6 Respostas

Mero_Aprendiz
clauber.ferreira:
Galera preciso muito da ajuda de vc's estou agarrado nisso ja faz um tempo e se não conseguir resolver logo irá comprometer todo o projeto.

tenho um módulo onde o usuário irá fazer uploads, então criei um servlet pra isso

if (!ServletFileUpload.isMultipartContent(request))
			return ;
		
		DiskFileItemFactory factory = new DiskFileItemFactory();
		factory.setRepository(new File(request.getParameter("pasta")));		
		
		ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
				
		List items = null ;
		
		try {
			items = servletFileUpload.parseRequest(request);
		}catch (FileUploadException e) {
			e.printStackTrace();
		}				
		
		Iterator i = items.iterator();
				
		while (i.hasNext()){			
			
			FileItem item = (FileItem)i.next();
			
			if (item.isFormField())				
				continue;		
			
			File file = new File(item.getName());
			String nome = file.getName() ;
			
			file = new File(request.getParameter("pasta") + "/" + nome);						
			
			try {				
				item.write(file);				
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		}

no lado cliente faço a requisição desta forma

String url = "/uploadServlet?pasta=" + pasta+ "/" + Util.strZero(cliente.getCodigo(), 6) + "&caminho=" + txtArquivo.getText();										
														
					panCampo.getForm().submit(url, null, Connection.POST, null, true);

mapeamento no gwt.xml

<servlet class="com.modulos.server.gwt.UploadServlet" path="/uploadServlet"/>

qdo estou rodando a aplicação em Hosted Mode funciona perfeitamente, porém qdo gero o .war no tomcat, a requisição não chega no servlet.

Alguém me ajuda por favor...!!!

Olá auber.ferreira.
Cara, estou iniciando com o GWT-EXT por isso vou dar apenas uma palpite.

clauber.ferreira:

qdo estou rodando a aplicação em Hosted Mode funciona perfeitamente, porém qdo gero o .war no tomcat, a requisição não chega no servlet.

Tive meu primeiro contato com o GWT-EXT por uma matéria na Java Magazine, e o procedimento para gerar o projeto me deixou meio "cabreiro", porque tive varios problemas com o deploy da aplicação não sei porque, inclusive alguns jar não eram disponibilizados quando o WAR era gerado.
Uma primeira dica e ver como o WAR esta sendo gerado, para ver se tudo esta em seu devido lugar (especialmente os Jars).

Outra e fazer um debug remoto. Fazer com que seu eclipse faça debug na aplicação no Tomcat onde esta dando o problema. Se isso não for possível, tente simular a mesma situação no seu PC.

Acho que por esse caminho conseguiremos achar o problema.

[]'s

JL

C

Cara valeu pelas dicas mas não obtive sucesso, debungando como vc falou usando o tomcat, a requisição não chega no servlet.

da uma olhada na imagem anexada, são todos os Jar’s que estão na lib. Acredito que não esteja faltando nenhum.


Mero_Aprendiz

clauber.ferreira:
Cara valeu pelas dicas mas não obtive sucesso, debungando como vc falou usando o tomcat, a requisição não chega no servlet.

Bem, como te disse, ainda estou iniciando em GWT-EXT.
Mas em uma consulta rapida no Google, encotrei o seguinte tutoria:
http://yochrislam.wordpress.com/2008/05/08/handling-file-upload-with-gwt-ext-and-spring-mvc/
Quem sabe não pode te ajudar, pois parece bem simples

[]'s
JL

C

Cara valeu pela atenção....
estou tentando implementar esse exemplo com spring

no applicationContext-GWT.xml eu coloquei
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
    	<property name="mappings">  
        	<value>  
            	/**/fileupload.smvc=fileUploadController  
        	</value>  
    	</property>  
	</bean>  

	<bean id="fileUploadController" class="com.modulos.server.gwt.FileUploadController">
    	<property name="commandClass" value="com.modulos.server.gwt.FileUploadBean"/>
	</bean>
	
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    	<property name="maxUploadSize" value="100000"/>  
	</bean>

quando mando rodar a aplicação em hosted Mode msm da o seguinte erro

[WARN] StandardWrapperValve[shell]: Servlet.service() for servlet shell threw exception
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.handler.SimpleUrlHandlerMapping' defined in class path resource [com/modulos/resources/applicationContext-GWT.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'fileUploadController  ' is defined
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:454)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:254)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:251)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:163)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at com.modulos.server.ApplicationContext.initContextFile(ApplicationContext.java:75)
	at com.modulos.server.ApplicationContext.<init>(ApplicationContext.java:46)
	at com.modulos.server.ApplicationContext.getInstance(ApplicationContext.java:36)
	at com.modulos.server.gwt.PersistenceImpl.<init>(PersistenceImpl.java:33)
	at com.modulos.server.gwt.PersistenceUsuarioImpl.<init>(PersistenceUsuarioImpl.java:23)
	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 com.google.gwt.dev.shell.GWTShellServlet.tryGetOrLoadServlet(GWTShellServlet.java:937)
	at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:277)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'fileUploadController  ' is defined
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:350)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:920)
	at org.springframework.beans.factory.support.AbstractBeanFactory.isSingleton(AbstractBeanFactory.java:355)
	at org.springframework.context.support.AbstractApplicationContext.isSingleton(AbstractApplicationContext.java:695)
	at org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:247)
	at org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.registerHandlers(SimpleUrlHandlerMapping.java:125)
	at org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.initApplicationContext(SimpleUrlHandlerMapping.java:103)
	at org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73)
	at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:86)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:304)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:431)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:254)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:251)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:163)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at com.modulos.server.ApplicationContext.initContextFile(ApplicationContext.java:75)
	at com.modulos.server.ApplicationContext.<init>(ApplicationContext.java:46)
	at com.modulos.server.ApplicationContext.getInstance(ApplicationContext.java:36)
	at com.modulos.server.gwt.PersistenceImpl.<init>(PersistenceImpl.java:33)
	at com.modulos.server.gwt.PersistenceUsuarioImpl.<init>(PersistenceUsuarioImpl.java:23)
	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 com.google.gwt.dev.shell.GWTShellServlet.tryGetOrLoadServlet(GWTShellServlet.java:937)
	at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:277)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Unknown Source)
Mero_Aprendiz

Pelo pouquiinho que eu sei, não pode ter esse espaço ai no nome do fileUploadController não.
Remove o espaço e testa!

:wink:

C

era isso aqui…

<value> /**/fileupload.smvc=fileUploadController </value>

troquei por isso:

<props> <prop key="/upload">fileUploadController</prop> </props>

agora minha dúvida é no lado cliente o q eu coloco na requisição pra ele chegar no FileUploadController ?

fiz assim, mas não funcionou

Criado 26 de fevereiro de 2009
Ultima resposta 27 de fev. de 2009
Respostas 6
Participantes 2