FileUpload do Primefaces não funciona no linux [RESOLVIDO]
15 respostas
N
novato25
Bom dia,
fiz uma aplicação que utiliza o componente fileUpload do primefaces. O upload funciona quando é disponibilizada num servidor windows, mas quando é publicada num servidor linux, o upload não funciona. Alguém já passou por isso? Não sei o que pode ser. Obrigado!
na verdade, não. Estou salvando apenas o arquivo e o nome do arquivo no banco.
T
tmvolpato
estranho…
Você o log ai do erro
N
novato25
nenhum erro. Nada! apenas não funciona. :’(
T
tmvolpato
tá então o problema pode ser o caminho temporário antes do arquivo ser salvo no banco
você deve ter definido isso na sua aplicação
deixa eu ver como está
<p:fileUpload fileUploadListener="#{meuBean.handleFileUpload}"
mode="advanced"
widgetVar="fileuplaod_wgt"
update="gridArquivo :#{p:component('formularioMensagens')}"
sizeLimit="5242880"
allowTypes="/(\.|\/)(pdf|doc|docx|xls|xlsx)$/"
label="Localizar arquivo"
auto="true"
invalidSizeMessage="Tamanho do arquivo excedeu o limite de 5MB"
invalidFileMessage="É permitido o uploado apenas de arquivos WORD, EXCEL ou PDF!" />
não, não tem. Eu defini este parâmtro e removi porque não fez diferença no linux.
A
ayslanms
Já testou em diferentes navegadores? Pode ser que o navegador não esteja reconhecendo o componente.
Caso seja a versão 2 do primefaces, ela usa flash e tem muitos problemas.
Tenta também mudar o filter do upload no web.xml:
Fiz as alterações sugeridas e não funcionou no linux. No windows funciona. O problema é que o método não é chamado e nem aparece nada no log. :(
Estou utilizando a versão 3.3.1 do primefaces; jsf 2.0; servidor glassfish 3.1.2;
Segue o arquivo web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="sjs-web"version="3.0"><context-param><param-name>contextConfigLocation</param-name><param-value>WEB-INF/*-context.xml</param-value></context-param><listener><listener-class>com.sun.faces.config.ConfigureListener</listener-class></listener><!-- JSF mapping --><servlet><servlet-name>FacesServlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><!-- Map these files with JSF --><servlet-mapping><servlet-name>FacesServlet</servlet-name><url-pattern>*.jsf</url-pattern></servlet-mapping><servlet-mapping><servlet-name>FacesServlet</servlet-name><url-pattern>*.faces</url-pattern></servlet-mapping><servlet-mapping><servlet-name>FacesServlet</servlet-name><url-pattern>*.xhtml</url-pattern></servlet-mapping><servlet><servlet-name>sjs</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>sjs</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><!-- Spring Security --><filter><filter-name>springSecurityFilterChain</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class></filter><filter-mapping><filter-name>springSecurityFilterChain</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- CAS Single Sign Out Filter --><filter><filter-name>CASSingleSignOutFilter</filter-name><filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class></filter><filter-mapping><filter-name>CASSingleSignOutFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>charsetFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>charsetFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class></listener><filter><filter-name>JPAFilter</filter-name><filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class></filter><filter><filter-name>CadastroPessoaFilter</filter-name><filter-class>br.com.sjs.web.filtro.CadastroPessoaCallBackFiltro</filter-class></filter><filter-mapping><filter-name>CadastroPessoaFilter</filter-name><url-pattern>/paginas/pessoa_gerenciador.xhtml</url-pattern></filter-mapping><context-param><param-name>javax.faces.PROJECT_STAGE</param-name><param-value>Production</param-value></context-param><context-param><param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name><param-value>true</param-value></context-param><context-param><param-name>javax.faces.STATE_SAVING_METHOD</param-name><param-value>server</param-value></context-param><welcome-file-list><welcome-file>index.jsp</welcome-file><welcome-file>index.html</welcome-file><welcome-file>index.xhtml</welcome-file></welcome-file-list><!-- PRIME FACES --><context-param><param-name>primefaces.THEME</param-name><param-value>redmond</param-value></context-param><!-- FILTRO PARA UPLOAD --><filter><filter-name>PrimeFacesFileUploadFilter</filter-name><filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class></filter><filter-mapping><filter-name>PrimeFacesFileUploadFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><mime-mapping><extension>ecss</extension><mime-type>text/css</mime-type></mime-mapping><error-page><error-code>401</error-code><location>/paginas/template/tela_erro.xhtml</location></error-page><persistence-unit-ref><description>PersistenceUnitdoSCG</description><persistence-unit-ref-name>persistence/sjsPU</persistence-unit-ref-name><persistence-unit-name>sjsPU</persistence-unit-name></persistence-unit-ref></web-app>
A
ayslanms
Geralmente o motivo de não entrar no método é a falta da lib commons-fileupload. Verifica se ela tá adicionada no teu projeto.
N
novato25
oi ayslanms,
também atentei para isto, mas tem as bibliotecas, inclusive eu já olhei até dentro do arquivo .WAR para ver se elas estavam lá realmente e estavam. Também, se fosse isso, não iria funcionar no windows. Tá difícil de resolver este problema.