首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lorg/apache/myfaces/custom/fileupload/UploadedFile :java.lang.NoClassDefFoundError

Lorg/apache/myfaces/custom/fileupload/UploadedFile :java.lang.NoClassDefFoundError
EN

Stack Overflow用户
提问于 2014-05-02 02:31:14
回答 2查看 1.7K关注 0票数 0

我想上传文件并在jsf页面中显示,因为我使用tomahawk 1.1.12、jsf2.0和jpa 2,我遵循了BalusC教程,但是项目没有进行部署,并给出了错误: java.lang.NoClassDefFoundError: pom.xml::

代码语言:javascript
运行
AI代码解释
复制
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>maven.test</groupId>
  <artifactId>mavenTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <repositories>
        <repository>
            <id>oss.sonatype.org</id>
            <name>OSS Sonatype Staging</name>
            <url>https://oss.sonatype.org/content/groups/staging</url>
         </repository>
         <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <layout>default</layout>
         </repository>
          <repository>
              <id>central</id>
              <name>Central Repository</name>
              <url>http://repo.maven.apache.org/maven2</url>
              <layout>default</layout>
              <snapshots>
                <enabled>false</enabled>
              </snapshots>
            </repository>
            <repository>
                <id>apache-maven-snapshots</id>
                <url>
                http://people.apache.org/repo/m2-snapshot-repository
                </url>
                <releases>
                  <enabled>false</enabled>
                </releases>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>myfaces-staging</id>
                <url>
                     http://people.apache.org/builds/myfaces/m2-staging-repository
                </url>
                <releases>
                   <enabled>false</enabled>
                <!--
                Enable to test a MyFaces core release candidate with tomahawk
                -->
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
     </repositories>

 <dependencies>
     <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.0-RC1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>commonj.sdo</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
         <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.11</version>
         </dependency>
         <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.1.11</version>
         </dependency>
         <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901.jdbc4</version>
         </dependency>
         <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
         </dependency>
         <dependency>
            <groupId>org.apache.myfaces.tomahawk</groupId>
            <artifactId>tomahawk</artifactId>
            <version>1.1.12</version>
         </dependency>
         <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
         </dependency>
         <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
         </dependency>
         <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
         </dependency>
         <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
         </dependency>
       <!--   <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.tomahawk</groupId>
            <artifactId>tomahawk</artifactId>
            <version>1.1.14</version>
        </dependency> 
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.9</version>
        </dependency>-->       
     </dependencies>
</project>

我的托管豆:

代码语言:javascript
运行
AI代码解释
复制
package mbeans;

//import java.io.IOException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.faces.application.FacesMessage;
//import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.Part;

/*
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
//import org.apache.commons.el.Logger;
//import org.apache.log4j.*;
//import org.apache.log4j.spi.LoggerFactory;
*/
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.myfaces.custom.fileupload.UploadedFile;

import daoImpl.DocDAO;
import entities.Document;

//import org.slf4j.*;


@ManagedBean
@RequestScoped
public class DocBean {
    public DocDAO docDAO;
    private Part file;
    private  String titreDocument;
    private  String descriptionDocument;
    private  String lien;
    private  String dateMise;
    private String Categorie;
    private Integer sizeDocument;
    private String sousCategorie;

    public DocBean(){
        docDAO=new DocDAO();
    }

    private UploadedFile uploadedFile;
    private String fileName;

    // Actions ------------------------------------------------------------------------------------

    public void submit() {

        // Just to demonstrate what information you can get from the uploaded file.
        System.out.println("File type: " + uploadedFile.getContentType());
        System.out.println("File name: " + uploadedFile.getName());
        System.out.println("File size: " + uploadedFile.getSize() + " bytes");

        // Prepare filename prefix and suffix for an unique filename in upload folder.
        String prefix = FilenameUtils.getBaseName(uploadedFile.getName());
        String suffix = FilenameUtils.getExtension(uploadedFile.getName());

        // Prepare file and outputstream.
        File file = null;
        OutputStream output = null;

        try {
            // Create file with unique name in upload folder and write to it.
            file = File.createTempFile(prefix + "_", "." + suffix, new File("c:/data"));
            output = new FileOutputStream(file);
            IOUtils.copy(uploadedFile.getInputStream(), output);
            fileName = file.getName();

            // Show succes message.
            FacesContext.getCurrentInstance().addMessage("uploadForm", new FacesMessage(
                FacesMessage.SEVERITY_INFO, "File upload succeed!", null));
        } catch (IOException e) {
            // Cleanup.
            if (file != null) file.delete();

            // Show error message.
            FacesContext.getCurrentInstance().addMessage("uploadForm", new FacesMessage(
                FacesMessage.SEVERITY_ERROR, "File upload failed with I/O error.", null));

            // Always log stacktraces (with a real logger).
            e.printStackTrace();
        } finally {
            IOUtils.closeQuietly(output);
        }
    }

    // Getters ------------------------------------------------------------------------------------

    public UploadedFile getUploadedFile() {
        return uploadedFile;
    }

    public String getFileName() {
        return fileName;
    }

    // Setters ------------------------------------------------------------------------------------

    public void setUploadedFile(UploadedFile uploadedFile) {
        this.uploadedFile = uploadedFile;
    }

    //@EJB
    //private DocDAO fileUploaderEJB;

    //private final static Logger logger = LoggerFactory.getLogger(DocDAO.class);

    //public void handleFileUpload(FileUploadEvent event) {
       /* titreDocument = event.getFile().getFileName();
        //String contentType = event.getFile().getContentType();
        byte[] bytes = event.getFile().getContents();

        Document garbage = new Document();
        garbage.setDescriptionDocument(titreDocument);
        garbage.setFile(bytes);
        garbage.setDescriptionDocument("info about the file");
        fileUploaderEJB.uploadGarbage(garbage);

        //((Log) logger).info("Uploaded: {}");

        FacesMessage msg = new FacesMessage("Succesful", event.getFile()
                .getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);*/
    //}
public String upload() throws IOException{
    file.write("C:\\data\\"+getFilename(file));

        return"succes";
    }
    private static String getFilename(Part part){
        for(String cd: part.getHeader("content-disposition").split(";")){
            if(cd.trim().startsWith("filename")){
                String filename=cd.substring(cd.indexOf('=') + 1).trim().replace("\"", "");
                return filename.substring(filename.lastIndexOf('/') + 1).substring(filename.lastIndexOf('\\') + 1);
            }

        }
        return null;
    }
    /*public List<Document> getAlldoc(){
        return docDAO.getAllDoc();
    }
    public String createdoc(){
        docDAO.createDoc(titreDocument, descriptionDocument, sousCategorie, Categorie, sizeDocument, dateMise, lien);;
        sizeDocument=null;
        titreDocument="";
        descriptionDocument="";
        lien="";
        sousCategorie="";
        dateMise="";
        Categorie="";
        return "success";
    }*/


    public String getSousCategorie() {
        return sousCategorie;
    }

    public void setSousCategorie(String sousCategorie) {
        this.sousCategorie = sousCategorie;
    }

    public String getTitreDocument() {
        return titreDocument;
    }

    public void setTitreDocument(String titreDocument) {
        this.titreDocument = titreDocument;
    }

    public String getDescriptionDocument() {
        return descriptionDocument;
    }

    public void setDescriptionDocument(String descriptionDocument) {
        this.descriptionDocument = descriptionDocument;
    }

    public String getDateMise() {
        return dateMise;
    }

    public void setDateMise(String dateMise) {
        this.dateMise = dateMise;
    }

    public String getCategorie() {
        return Categorie;
    }

    public void setCategorie(String categorie) {
        Categorie = categorie;
    }

    public Integer getSizeDocument() {
        return sizeDocument;
    }

    public void setSizeDocument(Integer sizeDocument) {
        this.sizeDocument = sizeDocument;
    }

    public String getLien() {
        return lien;
    }
    public void setLien(String lien) {
        this.lien = lien;
    }


    public Part getFile() {
        return file;
    }
    public void setFile(Part file) {
        this.file = file;
    }
}

我的实体:

代码语言:javascript
运行
AI代码解释
复制
package entities;

import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the document database table.
 * 
 */
@Entity
@Table(name="document")
@NamedQuery(name="Document.findAll", query="SELECT d FROM Document d")
public class Document  {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="\"idDocument\"", unique=true, nullable=false)
    private Integer idDocument;

    @Column(length=45)
    private String categorie;

    @Column(name="\"dateMise\"", length=45)
    private String dateMise;

    @Column(name="\"descriptionDocument\"", length=60)
    private String descriptionDocument;

    @Lob
    @Column
    private byte[] file;

    @Column(length=45)
    private String lien;

    @Column(name="\"sizeDocument\"")
    private Integer sizeDocument;

    @Column(name="\"sousCategorie\"", length=45)
    private String sousCategorie;

    @Column(name="\"titreDocument\"", length=45)
    private String titreDocument;

    public Document() {
    }

    public Integer getIdDocument() {
        return this.idDocument;
    }

    public void setIdDocument(Integer idDocument) {
        this.idDocument = idDocument;
    }

    public String getCategorie() {
        return this.categorie;
    }

    public void setCategorie(String categorie) {
        this.categorie = categorie;
    }

    public String getDateMise() {
        return this.dateMise;
    }

    public void setDateMise(String dateMise) {
        this.dateMise = dateMise;
    }

    public String getDescriptionDocument() {
        return this.descriptionDocument;
    }

    public void setDescriptionDocument(String descriptionDocument) {
        this.descriptionDocument = descriptionDocument;
    }

    public byte[] getFile() {
        return this.file;
    }

    public void setFile(byte[] file) {
        this.file = file;
    }

    public String getLien() {
        return this.lien;
    }

    public void setLien(String lien) {
        this.lien = lien;
    }

    public Integer getSizeDocument() {
        return this.sizeDocument;
    }

    public void setSizeDocument(Integer sizeDocument) {
        this.sizeDocument = sizeDocument;
    }

    public String getSousCategorie() {
        return this.sousCategorie;
    }

    public void setSousCategorie(String sousCategorie) {
        this.sousCategorie = sousCategorie;
    }

    public String getTitreDocument() {
        return this.titreDocument;
    }

    public void setTitreDocument(String titreDocument) {
        this.titreDocument = titreDocument;
    }

}

我的网页xhtml:

代码语言:javascript
运行
AI代码解释
复制
<h:panelGrid columns="3">
                    <h:outputLabel for="file" value="Select file" />
                    <t:inputFileUpload id="file" value="#{docBean.uploadedFile}" required="true" />
                    <h:message for="file" style="color: red;" />

                    <h:panelGroup />
                    <h:commandButton value="Submit" action="#{docBean.submit}" />
                    <h:message for="uploadForm" infoStyle="color: green;" errorStyle="color: red;" />
                </h:panelGrid>
    </h:form>
    <h:outputLink value="file/#{docBean.fileName}" rendered="#{docBean.fileName != null}">
                Download back
            </h:outputLink>

知道吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-20 02:40:36

谢谢奥马尔,这是一个版本的问题,我试着上传,只使用jsf2.2,没有战斧或原始脸。已解决

票数 0
EN

Stack Overflow用户

发布于 2014-05-02 02:38:07

代码语言:javascript
运行
AI代码解释
复制
<dependency>
    <groupId>org.apache.myfaces.tomahawk</groupId>
    <artifactId>tomahawk</artifactId>
    <version>1.1.12</version>
</dependency>

代之以

代码语言:javascript
运行
AI代码解释
复制
<dependency>
    <groupId>org.apache.myfaces.tomahawk</groupId>
    <artifactId>tomahawk20</artifactId>
    <version>1.1.12</version>
</dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23426012

复制
相关文章
Apache FileUpload详细介绍
在最初的 http 协议中,没有上传文件方面的功能。RFC1867(”Form-based File Upload in HTML”.)为 http 协议添加了这个功能。客户端的浏览器,如 Microsoft IE, Mozila, Opera 等,按照此规范将用户指定的文件发送到服务器。服务器端的网页程序,如 php, asp, jsp 等,可以按照此规范,解析出用户发送来的文件。
谙忆
2021/01/21
2.2K0
文件上传之Apache commons fileupload使用
  文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload.   我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题: 1 form表单内,要添加空间<input type="file" name="myfile">   2 form表单的内容格式要定义成multipart/form-data格式   3 需要类库:1 commons-io.jar 2commons-fileupload-1.3.1.jar   接下来我们看下他
用户1154259
2018/01/18
1.8K0
文件上传之Apache commons fileupload使用
Java文件上传-Apache Commons FileUpload工具包极速入门案例
其实Apache Commons FileUpload工具包还是有些复杂,步骤较多,有一些其他框架比如struts、springmvc都对其进行了封装,可以简化开发步骤。有兴趣的话可以自行查阅官网资料进行学习。
青山师
2023/05/05
2960
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger报错
错误的项目是没有maven dependencies这一项的,需要add,选择add按钮,
用户5640963
2019/07/26
4.2K0
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger报错
java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
1、启动项目报出这个错误,未找到响应的包,所以需要你将包从远程仓库下载到本地仓库即可。
别先生
2019/08/06
2.1K0
解决org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException
解决org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException 今天在测试的时候,上传了一个3MB左右的文件,提示这个错误 从错误信息可以发现,是上传的文件太大了。 分享原因: tomacat限制大小(默认1M), 当上传文件大于这个值时就会报错 解决方案: // 设置单个文件大小 spring.servlet.multipart.max-file-size= 50MB // 设置单次请求文件的总大小 spring
凯哥Java
2022/12/16
1.9K0
解决org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException
FileUpload
用request.getParameter("file")方法只能得到字符串,不管是否文件类型
晚上没宵夜
2020/03/10
4640
nestJs 之 fileupload 自定义路径与文件名
这里我们知道了,nest.js 使用的是multer 来封装的,所以我们可以直接使用multer类来进行自定义处理
stormKid
2019/02/27
2.6K0
Yii2 UploadedFile上传文件
原文链接:https://blog.csdn.net/lilongsy/article/details/84620377
双面人
2019/11/22
7730
【Custom Mutator Fuzz】Libprotobuf + AFLapp Custom Mutator[通俗易懂]
这篇文章主要是在libprotobuf-mutator_fuzzing_learning开源模糊测试练习项目第4个练习的基础上进行详细讲解,主要内容为通过libprotobuf-mutator为AFL++提供自定义protobuf结构突变。练习和写作的过程中也是踩了不少的坑,文章末尾会有我遇到的全部问题及解决办法。特别感谢Sakura的fuzzinglab教学,以及漫牛师傅的耐心指导
全栈程序员站长
2022/09/30
3870
我服了!SpringBoot升级后这服务我一个星期都没跑起来!(下)
上一次的升级过程中差不多已经跑起来90%了,这周一上班解决完一点小问题,服务已经正常跑起来了,于是再拿着一些其他的服务测试了一下,又发现了一些其他的报错,所以继续。
艾小仙
2022/12/05
1K0
我服了!SpringBoot升级后这服务我一个星期都没跑起来!(下)
java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
今天在使用动态代理时,遇到了如下问题,报错 java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice   下面是完整的报错信息: 一月 31, 2015 2:08:18 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.Class
用户1154259
2018/01/17
1.1K0
Custom Beautify
引入魔改样式的方法很简单,自建一个css文件,然后引入即可。 以butterfly主题为例。可以在[Blogroot]\themes\butterfly\source\css\目录下新建custom.css文件,然后在[Blogroot]\_config.butterfly.yml的inject配置项中引入自定义样式文件。
Akilar
2021/06/11
2.5K0
struts2框架搭建学习遇到的问题
严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTargetException处理方法:
yuanyuan
2019/09/10
5360
如何使用MyFace快速构建基于JSF的应用
如果大家使用Apache MyFace的JSF实现来搭建JSF应用,可以利用Apache提供的便捷maven方法来快速搭建一个初始的应用。
EltonZheng
2021/01/22
9690
Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)
Servlet出现之前,文件上传的开发比较困难,主要涉及在服务端解析原始的HTTP响应。 03年Apache发布了开源的Commons FileUplaod组件,极大地提高了文件上传的开发效率。
小小工匠
2021/08/17
3210
java.lang.NoClassDefFoundError: javax/el/ELManager
今天搭建一个ssm框架的项目,报了一个令我怀疑人生的错误: java.lang.NoClassDefFoundError: javax/el/ELManager 网上说出现这种错,大概有以下两个原因: 1.tomcat提供的el-api 和项目里面的el-api.jar冲突; 2.tomcat7中的el-api2.2有些版本太低; 除了以上两点,我还总结了以下六点 ...... 最后,我在maven把6.0版本的org.hibernate改成低版本的,如下: 1 <dependency> 2
朱季谦
2019/10/16
1.8K0
引入分布式Id遇到的坑
common-base中的pom文件引入id-generator和id-generator-core的maven依赖
chenchenchen
2023/01/30
4900
java web文件上传——FileUpload
1.普通表单提交默认enctype=”application/x-www-form-urlencoded”;但是当表单中存在文件类型时,需要设置enctype=”multipart/form-data”,它不对字符进行编码,用于发送二进制的文件(即所有文件类型,如视频、图片、音乐、文档都可以用此类型entype);还有一种enctype=”text/plain”用于发送纯文本内容。
全栈程序员站长
2022/08/28
1.7K0
java web文件上传——FileUpload
QTreeview custom
大家好,又见面了,我是你们的朋友全栈君。设定字体 virtual QVariant MyModel::data( const QModelIndex &index, int role ) const { if ( index.isValid() && role == Qt::ForegroundRole ) { if ( index.column() == 2 ) { return QVariant( QColor( Qt::re
全栈程序员站长
2022/08/31
7710

相似问题

UploadedFile(org.apache.myfaces.custom.fileupload.UploadedFile;)中的getAbsolutePath()类方法

23

java.lang.NoClassDefFoundError: Lorg/apache/commons/FastHashMap;

10

java.lang.NoClassDefFoundError:failed解析:Lorg/apache/http/ProtocolVersion

120

错误: java.lang.NoClassDefFoundError:解析失败:Lorg/apache/xmlbean/XmlOptions;

11

java.lang.NoClassDefFoundError: Lorg/apache/commons/LogFactory的失败解析

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文