Forums

Home » Liferay Portal » Español » General »

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Sergio Alejandro Muñoz
fileUpload en un portlet
June 12, 2008 11:18 AM
Answer

Sergio Alejandro Muñoz

Rank: New Member

Posts: 24

Join Date: June 3, 2008

Recent Posts

Saludos...

He visto que el estandar de SUN para JSF no posee un tag que permita cargar archivos, (un fileinput o algo asi) y mi pequeño proyecto consiste en poder hacer que un usuario cargue una imagen para almacenarla en su perfil, busque por la red y encontre que podia utilizar el tag <t:inputFileUpload > de myfaces, todo esto lo estoy tratando de hacer dentro de un portlet, todo funciona correctamente en la visualización, cuando cargo un archivo y trato de obtenerlo en el backingbean el objeto de tipo UploadedFile me llega nulo, si alguien sabe como puedo hacer para implementar una funcionalidad similar le agradeceria.
Jonathan Alexander Diosa
RE: fileUpload en un portlet
June 14, 2008 11:34 PM
Answer

Jonathan Alexander Diosa

Rank: Regular Member

Posts: 190

Join Date: February 26, 2007

Recent Posts

Hola Sergio,
En mi compañia impletentamos un portlet parecido al que tu comentas, el objetivo era subir al servidor un archivo desde un formulario JSP.
Para esto utilizamos Spring portlet MVC, claro está que esta no era la unica funcionalidad del portlet. en este link puedes encontrar información de como se realizaria esto. Tambien puedes descargar el portlet de ejemplo "simple-spring-portlet-XXX.war" el cual tiene un modulo de ejemplo para subir un archivo.

Para realizar esto, se utilizo el API "common-fileupload" de apache.

sin embargo no te recomendaria usar Spring únicamente para esta funcionalidad. por lo tanto te recomendaria estudiar el funcionamiento de esta API y como sería su integración con una Pagina JSP normal para tu portlet.

Un saludo
Sergio Alejandro Muñoz
RE: fileUpload en un portlet
June 16, 2008 6:55 AM
Answer

Sergio Alejandro Muñoz

Rank: New Member

Posts: 24

Join Date: June 3, 2008

Recent Posts

Saludos....

Hey muchas gracias por las ayudas, me han sido de gran utilidad.
Sergio Alejandro Muñoz
RE: fileUpload en un portlet
June 16, 2008 9:17 AM
Answer

Sergio Alejandro Muñoz

Rank: New Member

Posts: 24

Join Date: June 3, 2008

Recent Posts

Saludos....

Realice una pequeña funcionalidad utilizando myFaces la cual me permitia capturar un archivo, la desplegue sobre jboss-4.2.2.G.A y funciono correctamente, tuve que modificar el web.xml y añadir los jar de myFaces al jboss ya que este toma por defecto la implementación de SUN.
Ahora intente agregar esta funcionalidad a un portlet, modifique el web.xml y los jars del jboss que viene en el liferay-5.0.1 para que tomara las librerias de myFaces, tambien agrege el bridge de myFaces , pero en cuanto hago un deploy me sale el siguiente error:

Excepción enviando evento inicializado de contexto a instancia de escuchador de clase com.liferay.portal.kernel.servlet.PortletContextListener
java.lang.VerifyError: Cannot inherit from final class
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1814)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
        at org.jboss.web.tomcat.service.WebAppClassLoader.findClass(WebAppClassLoader.java:139)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
        at java.lang.Class.getConstructor0(Class.java:2671)
        at java.lang.Class.getConstructor(Class.java:1629)
        at javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:173)
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:133)
        at org.apache.myfaces.portlet.MyFacesGenericPortlet.init(MyFacesGenericPortlet.java:111)
        at javax.portlet.GenericPortlet.init(GenericPortlet.java:107)
        at com.liferay.portlet.InvokerPortlet.init(InvokerPortlet.java:270)
        at com.liferay.portlet.PortletInstanceFactory._init(PortletInstanceFactory.java:215)
        at com.liferay.portlet.PortletInstanceFactory._create(PortletInstanceFactory.java:106)
        at com.liferay.portlet.PortletInstanceFactory.create(PortletInstanceFactory.java:52)
        at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:355)
        at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._fireDeployEvent(HotDeployUtil.java:89)
        at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:42)
        at com.liferay.portal.kernel.servlet.PortletContextListener.portalInit(PortletContextListener.java:53)
        at com.liferay.portal.kernel.util.PortalInitableUtil.init(PortalInitableUtil.java:38)
        at com.liferay.portal.kernel.servlet.PortletContextListener.contextInitialized(PortletContextListener.java:93)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
        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:585)
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)
        at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.apache.catalina.core.StandardContext.init(StandardContext.java:5312)
        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:585)
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)
        at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)
        at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
        at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
        at org.jboss.web.WebModule.startModule(WebModule.java:83)
        at org.jboss.web.WebModule.startService(WebModule.java:61)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
        at $Proxy0.start(Unknown Source)
        at org.jboss.system.ServiceController.start(ServiceController.java:417)
        at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
        at $Proxy44.start(Unknown Source)
        at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
        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:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
        at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
        at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
        at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
        at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
        at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
        at $Proxy45.start(Unknown Source)
        at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
        at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
        at $Proxy9.deploy(Unknown Source)
        at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
        at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
        at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
        at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
        at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
15:53:29,487 ERROR [StandardContext] Error listenerStart


no se que más tengo que modificar o hacer para poder desplegar la aplicación como un portlet en liferay-5 usando myFaces.
Sergio Alejandro Muñoz
RE: fileUpload en un portlet
June 17, 2008 7:21 AM
Answer

Sergio Alejandro Muñoz

Rank: New Member

Posts: 24

Join Date: June 3, 2008

Recent Posts

saludos....

El error ya lo solucione, me base en un ejemplo que descargue como complemento al liferay, pero igual el portlet sigue sin funcionar, al darle click al submit se recarga la pagina y nunca me carga el archivo, alguien ha podido hacer un portlet en JSF que permita subir archivos.?
Jonathan Alexander Diosa
RE: fileUpload en un portlet
June 20, 2008 8:07 AM
Answer

Jonathan Alexander Diosa

Rank: Regular Member

Posts: 190

Join Date: February 26, 2007

Recent Posts

Hola,
si mal no estoy....creo que vi un ejemplo con ICE FACES que hacia algo parecido...talvés puedes buscar en los portlets de ejemplo de liferay en source forge.

Un saludo
( ApS )
RE: fileUpload en un portlet
July 15, 2008 1:28 PM
Answer

( ApS )

Rank: Junior Member

Posts: 88

Join Date: December 20, 2007

Recent Posts

Recuerda bajar la ultima version de commonFileUpload de Apache que soporta Portlets y lo pones en WEB-LIB/lib


El java :
----------------------


package cl.aps.soporte;

import java.io.File;
import java.util.Iterator;
import java.util.List;
import javax.portlet.ActionRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.portlet.PortletFileUpload;

/**
*
* @author P_ramos
*/
public class SubidaArchivos
{
int num_archivos = 0;
int numParam = 0;

String nom_archivo[]= new String [10];
String nomParam[]= new String [10];
String valParam[]= new String [10];


public String recibeArchivos(HttpServletRequest req)
{
String carpetaTemporal = "C:\\";
int ind=0;
File dir1 ;
char s=File.separatorChar;
String camino;
String mensajeArchivos="Listo";
boolean estado;
if ( req.getContentType()==null) // si no hay archivos
{
System.out.println("UsuarioPortal recibeArchivos() req.getContentType()==null NO HAY MULTIPART");
return "";
}

System.out.println("MULTIPART SI");
iniciaRecibeArchivos();
try {
//Crea Directorio destino donde estarán albergada las fotos
camino=Util.limpia(req.getRealPath(""));

camino=camino+s+"trabajo";
System.out.println("UsuarioPortal recibeArchivos() 1 camino "+camino);
dir1 = new File (camino);
estado=dir1.mkdirs();
System.out.println("UsuarioPortal recibeArchivos() 2 camino "+estado);

// construimos el objeto que es capaz de parsear la perición
DiskFileUpload fu = new DiskFileUpload();

// maximo numero de bytes
fu.setSizeMax(1024*1024*5); // 712 K

// tamaño por encima del cual los ficheros son escritos directamente en disco
fu.setSizeThreshold(4096);

// directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
//fu.setRepositoryPath(s+"tmp");
//fu.setRepositoryPath("C:"+s+"tmp");
System.out.println("UsuarioPortal recibeArchivos() 6.1 carpetaTemporal ["+carpetaTemporal+"]");
fu.setRepositoryPath(carpetaTemporal);

// ordenamos procesar los ficheros
List fileItems = fu.parseRequest(req);

if(fileItems == null)
{
mensajeArchivos="Error , no hay Itemes de Archivos";
System.out.println("UsuarioPortal recibeArchivos() 7 Entro a fileItems == null");
return mensajeArchivos;
}



// Iteramos por cada fichero
Iterator i = fileItems.iterator();
FileItem actual = null;


while (i.hasNext())
{
actual = (FileItem)i.next();
String campo=actual.getFieldName();

if (actual.isFormField())
{
String valor = actual.getString();

System.out.println("UsuarioPortal recibeArchivos() 8 campo "+ campo);
System.out.println("UsuarioPortal recibeArchivos() 9 valor "+ valor);
agregaParametro(campo,valor);
}
else
{
String fileName = actual.getName();
long tamano = actual.getSize();
System.out.println("UsuarioPortal recibeArchivos() 10 si es archivo fileName "+ fileName);
if (tamano==0)
{
//No hace nada
}
else
{
String nombreSolo= quitaRuta(fileName);
System.out.println("UsuarioPortal recibeArchivos() 11 nombreSolo "+ nombreSolo);
String ruta=camino+s + nombreSolo;
System.out.println("UsuarioPortal recibeArchivos() 12 ruta "+ ruta);
nom_archivo[num_archivos++]= new String (ruta);
File fichero = new File(ruta);

agregaParametro(campo,fileName);
System.out.println("UsuarioPortal recibeArchivos() 13 foto "+ fileName);
actual.write(fichero);
}

}
}


}
catch(Exception e) {
e.printStackTrace();

mensajeArchivos=e.getMessage();
return mensajeArchivos;
}

return mensajeArchivos;
}

public String recibeArchivos(ActionRequest req)
{

int ind=0;
File dir1 ;
char s=File.separatorChar;
String camino;
String mensajeArchivos="Listo";
boolean estado;
if ( req.getContentType()==null) // si no hay archivos
{
System.out.println("UsuarioPortal recibeArchivos() req.getContentType()==null NO HAY MULTIPART");
return "";
}

System.out.println("MULTIPART SI");
iniciaRecibeArchivos();
try {
//Crea Directorio destino donde estarán albergada las fotos
camino=System.getProperty("user.home");

camino=camino+s+"trabajo";
System.out.println("UsuarioPortal recibeArchivos() 1 camino "+camino);
dir1 = new File (camino);
estado=dir1.mkdirs();
System.out.println("UsuarioPortal recibeArchivos() 2 camino "+estado);

DiskFileItemFactory factory = new DiskFileItemFactory();

// construimos el objeto que es capaz de parsear la perición
PortletFileUpload fu = new PortletFileUpload(factory);

// maximo numero de bytes
fu.setSizeMax(1024*1024*50); //

// tamaño por encima del cual los ficheros son escritos directamente en disco
// fu.setSizeThreshold(4096);

// directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
//fu.setRepositoryPath(s+"tmp");
//fu.setRepositoryPath("C:"+s+"tmp");

// System.out.println("UsuarioPortal recibeArchivos() 6.1 carpetaTemporal ["+carpetaTemporal+"]");

//fu.setRepositoryPath(carpetaTemporal);

// ordenamos procesar los ficheros
List fileItems = fu.parseRequest(req);

if(fileItems == null)
{
mensajeArchivos="Error , no hay Itemes de Archivos";
System.out.println("UsuarioPortal recibeArchivos() 7 Entro a fileItems == null");
return mensajeArchivos;
}



// Iteramos por cada fichero
Iterator i = fileItems.iterator();
FileItem actual = null;


while (i.hasNext())
{
actual = (FileItem)i.next();
String campo=actual.getFieldName();

if (actual.isFormField())
{
String valor = actual.getString();

System.out.println("UsuarioPortal recibeArchivos() 8 campo "+ campo);
System.out.println("UsuarioPortal recibeArchivos() 9 valor "+ valor);
agregaParametro(campo,valor);
}
else
{
String fileName = actual.getName();
long tamano = actual.getSize();
System.out.println("UsuarioPortal recibeArchivos() 10 si es archivo fileName "+ fileName);
if (tamano==0)
{
//No hace nada
}
else
{
String nombreSolo= quitaRuta(fileName);
System.out.println("UsuarioPortal recibeArchivos() 11 nombreSolo "+ nombreSolo);
String ruta=camino+s + nombreSolo;
System.out.println("UsuarioPortal recibeArchivos() 12 ruta "+ ruta);
nom_archivo[num_archivos++]= new String (ruta);
File fichero = new File(ruta);

agregaParametro(campo,fileName);
System.out.println("UsuarioPortal recibeArchivos() 13 foto "+ fileName);
actual.write(fichero);
}

}
}


}
catch(Exception e)
{
e.printStackTrace();
mensajeArchivos=e.getMessage();
return mensajeArchivos;
}

return mensajeArchivos;
}


public void iniciaRecibeArchivos()
{
num_archivos=0;
numParam=0;
System.out.println("UsuarioPortal iniciaRecibeArchivos() ");
}

public boolean existeParametro(String param)
{

// String valParam[]= new String [10];
for (int i=0;i<numParam;i++)
{
if (nomParam.compareTo(param)==0)
{
return true;
}
}
return false;
}

public String leeParametro(String param)
{

for (int i=0;i<numParam;i++)
{
if (nomParam.compareTo(param)==0)
{
return valParam;
}
}
return "";
}

public String agregaParametro(String nombreParametro,String valorParametro)
{

nomParam[numParam]=nombreParametro;
valParam[numParam]=valorParametro;
numParam++;
System.out.println("UsuarioPortal agregaParametro() nombreParametro "+nombreParametro);
System.out.println("UsuarioPortal agregaParametro() valorParametro "+valorParametro);
return null;
}

public String quitaRuta(String ruta)
{
int i;
String archivo=null;
String letra="";
archivo="";
for (i=ruta.length();i>0;i--)
{
letra=ruta.substring(i-1,i);
if (letra.compareTo("/")==0 || letra.compareTo("\\")==0)
{
return archivo;
}
archivo=letra+archivo;
}
return(ruta);
}

}





El JSP
--------------

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@ page import="java.util.ArrayList"%>
<%@ page import="javax.portlet.*"%>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>

<portlet:defineObjects />
<%PortletPreferences prefs = renderRequest.getPreferences();%>


<form action='<portlet:actionURL />' method="POST" Enctype="multipart/form-data" >
<input type="file" name="fichero" />
<input type="submit" name="submit" value="Subir" />
</form>



El MVC
--------


public class AdminGaleria extends GenericPortlet {

public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException
{
System.out.println("Entrando a processAction");
if (PortletFileUpload.isMultipartContent(request))
{
SubidaArchivos subidaArchivos = new SubidaArchivos();
subidaArchivos.recibeArchivos(request);
Zip zip = new Zip();
String archivo = subidaArchivos.leeParametro("fichero");
System.out.println("archivo = "+archivo);
request.getPortletSession().setAttribute("archivo", archivo);

//en archivo esta la ruta a tu archivo subido
}

}

public void doView(RenderRequest request,RenderResponse response) throws PortletException,IOException
{
response.setContentType("text/html");



// PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/AdminGaleria_view.jsp");
dispatcher.include(request, response);
}
public void doEdit(RenderRequest request,RenderResponse response) throws PortletException,IOException
{
response.setContentType("text/html");
//
//
//
}
}
noah suarez
RE: fileUpload en un portlet
March 22, 2010 6:44 PM
Answer

noah suarez

Rank: New Member

Posts: 22

Join Date: February 19, 2010

Recent Posts

hola sergio, a mi me está saliendo el mismo error cuando trato de desplegar un portlet utilizando MyFaces 1.2.8 en liferay portal 5.2.3 sabes cual es la solución?. pude desplegar un portlet de ejemplo con MyFaces 1.1 pero cuando cambie a la versión 1.2.8 me sale este error, no será por qué la clase MyFacesGenericPortlet en la versión 1.2.8 de myfaces es deprecated????.. te dejo el error que obtento ojala me puedan ayudar.. gracias

20:30:18,921 WARN [ClassLoaderManager] Unexpected error during load of:com.liferay.util.bridges.jsf.myfaces.MyFacesContextImpl
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:63)
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:546)
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:506)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:504)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:481)
at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:258)
at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:152)
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:259)
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1102)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:772)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:415)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getConstructor(Class.java:1657)
at javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:176)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:136)
at org.apache.myfaces.portlet.MyFacesGenericPortlet.init(MyFacesGenericPortlet.java:115)
at javax.portlet.GenericPortlet.init(GenericPortlet.java:107)
at com.liferay.portlet.InvokerPortletImpl.init(InvokerPortletImpl.java:250)
at com.liferay.portlet.PortletInstanceFactoryImpl.init(PortletInstanceFactoryImpl.java:245)
at com.liferay.portlet.PortletInstanceFactoryImpl.create(PortletInstanceFactoryImpl.java:135)
at com.liferay.portlet.PortletInstanceFactoryUtil.create(PortletInstanceFactoryUtil.java:47)
at com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortlet(PortletHotDeployListener.java:660)
at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:250)
at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:127)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._doFireDeployEvent(HotDeployUtil.java:108)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._fireDeployEvent(HotDeployUtil.java:153)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:43)
at com.liferay.portal.kernel.servlet.PortletContextListener.portalInit(PortletContextListener.java:113)
at com.liferay.portal.kernel.util.PortalInitableUtil.init(PortalInitableUtil.java:48)
at com.liferay.portal.kernel.servlet.PortletContextListener.contextInitialized(PortletContextListener.java:109)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:312)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:144)
at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
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.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
at $Proxy36.start(Unknown Source)