JSF: problème de filter sur Tomahawk

Heri83 Messages postés 18 Statut Membre -  
 samir -
bonjour, je suis entrain de coder un programme upload fichier sur jsf et comme indiqué dans plusieurs tuto, il faut déclarer un filter dans le web.xml pour que tomahawk marche. Malheureusement, lorsque j'ajoute celui ci dans le fichier indiqué, la ressource demandée n'est plus disponible et le projet est bloqué...si qlq1 pourra m'aider..c'est très urgent...

Merci

j'utilise:
- eclipse, JSF1.1, tomhawak

le fichier web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://www.oracle.com/webfolder/technetwork/jsc/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
	<display-name>test3</display-name>
	<filter>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<filter-class>
			org.apache.myfaces.webapp.filter.ExtensionsFilter
		</filter-class>
		<init-param>
			<param-name>maxFileSize</param-name>
			<param-value>2m</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>

	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>
		javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>




le fichier upload.jsp:

<%@ taglib uri="https://www.oracle.com/java/technologies/" prefix="html"%>
<%@ taglib uri="https://www.oracle.com/java/technologies/" prefix="faces"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk/" prefix="t"%>

<html:form id="uploadForm" enctype="multipart/form-data" >
	<t:inputFileUpload id="fileupload"
		value="#{testClass.file}"
		storage="file"
		required="true" />
	<html:message for="fileupload" showDetail="true" />
	<html:commandButton value="Send" action="#{testClass.test}" />
</html:form>




la classe testClass:
package upload;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.logging.*;

import org.apache.myfaces.custom.fileupload.UploadedFile;

public class TestClass {
	 
	private Logger log = getLogger(getClass());
	private UploadedFile file = null; 
 
	public void setFile(UploadedFile f) {
		log.debug(f.getName());
		log.debug("Size :" + f.getSize());
		this.file = f;
	}
	public UploadedFile getFile() {
		return file;
	}
	
	public String test() {
		try {
			InputStreamReader isr = new InputStreamReader(file.getInputStream());
			BufferedReader br = new BufferedReader(isr);
 
			String tmp = null;
			while ((tmp = br.readLine()) != null) {
				log.debug(tmp);
			}
			
			br.close();
			isr.close();
		} catch (Exception e) {
			log.error(e, e);
		}
		return null;
	}
	
}




Merci beaucoup....

1 réponse

anonyme
 
il faut rajouter l'attribut enctype à la balsie h:form>
<h:form enctype="multipart/form-data">
0
sky
 
Bonjour,

j'essaie desesperement de faire fonctionner l'upload avec tomahawk sous Eclipse sur un server apache tomcat. Quand je lance le serveur, il y a une erreure "org.apache.myfaces.component.html.util.ExtensionsFilter not found".

Dans mon dossier WEB-INF/lib j'ai les librairies suivantes:
commons-beanutils_1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-el.jar
commons-fileupload-1.2.1.jar
commons-lang-2.1.jar
commons-logging-1.1.1.jar
commons-validator-1.3.1.jar
jstl-1.1.2.jar
myfaces-api-1.2.5.jar
myfaces-impl-1.2.5.jar
tomahawk-1.1.8.jar

J'ai verifié dans le jar de tomahawk org.apache.myfaces.component.html.util.ExtensionsFilter y est ainsi que org.apache.myfaces.webapp.filter.ExtensionsFilter.
J'ai essayé tout ce que j'ai pu avec les différentes versions de librairies mais ca ne fonctionne pas, pouvez vous m'aider svp ?
Merci d'avance.

Mon web.xml est le suivant:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html" xmlns:web="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">


<display-name>test</display-name>

<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<param-name>uploadMaxFileSize</param-name>
<param-value>20m</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>

Log de l'erreur:
...
ATTENTION: [NavigationRuleRule]{faces-config/navigation-rule} Merge(*)
23 nov. 2008 16:44:14 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception au d�marrage du filtre ExtensionsFilter
java.lang.ClassNotFoundException: org.apache.myfaces.component.html.util.ExtensionsFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
...
0
sky > sky
 
C'est bon j'ai trouvé mon problème après 2 jours de recherches :| Sur le server tomcat étaient configurés deux projets. Il y avait donc une corruption dans les librairies entre les projets.
0
mickouchouchou > sky
 
Super content pour toi que tu ais pu résoudre ton problème !! ;)
Si seulement tu pouvais me donner toute la méthode à suivre pour faire fonctionner tomahawk, car j'essaie désespérément de faire fonctionner un pauvre petit t:commandLink, et aucun tuto ne le renseigne !!
Ca serait super sympa de ta part !!
En espérant pouvoir te lire bientôt,
Mickaël
0
samir
 
Bonjour, est ce que quelqu'un peut me donner la methode a suivre pour faire fonctionne tomahawk je galaire pour le faire fonctionne
0