javax.el.E​​LException : java. lang.NoClassDefFoundError: org/hibernate/HibernateException

标签 java hibernate maven

我被这个问题困扰了!我已在 pom.xml 文件中添加了所有依赖项,我认为不需要将外部 jar 添加到 WEB-INF 文件夹。请帮忙解决这个问题。 我的 pom.xml 是:

<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>ShopCart</groupId>
    <artifactId>ShopCart</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ShopCart</name>
    <url>http://www.primefaces.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/webapp</directory>
                <includes>
                    <include>**/web.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.11</version>
                <configuration>
                    <excludes>
                        <!-- Exclude integration tests within (unit) test phase. -->
                        <exclude>**/integration/**/*.java</exclude>
                    </excludes>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <webResources>
                        <resource>
                            <filtering>true</filtering>
                            <directory>src/main/webapp</directory>
                            <includes>
                                <include>**/web.xml</include>
                            </includes>
                        </resource>
                    </webResources>
                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
                    <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.9.v20130131</version>
                <configuration>
                    <webAppConfig>
                        <contextPath>/prime-showcase</contextPath>
                        <overrideDescriptor>src/main/webapp/WEB-INF/web-overwrite.xml</overrideDescriptor>
                    </webAppConfig>
                    <webXml>${project.build.directory}/classes/WEB-INF/web.xml</webXml>
                    <scanIntervalSeconds>5</scanIntervalSeconds>
                </configuration>
            </plugin>

        </plugins>

        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh</artifactId>
                <version>1.0</version>
            </extension>
        </extensions>

    </build>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.3</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.7</version>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
            <exclusions>
                <exclusion>
                    <groupId>bouncycastle</groupId>
                    <artifactId>bcmail-jdk14</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>bouncycastle</groupId>
                    <artifactId>bcprov-jdk14</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bctsp-jdk14</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.3.Final</version>
        </dependency>

        <!-- File Upload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

        <!-- FeedReader and Mobile News -->
        <dependency>
            <groupId>rome</groupId>
            <artifactId>rome</artifactId>
            <version>1.0</version>
        </dependency>

        <!-- Twitter API -->
        <dependency>
            <groupId>org.twitter4j</groupId>
            <artifactId>twitter4j-core</artifactId>
            <version>3.0.5</version>
        </dependency>

        <!-- Dynamic Image Examples -->
        <dependency>
            <groupId>net.sourceforge.barbecue</groupId>
            <artifactId>barbecue</artifactId>
            <version>1.5-beta1</version>
        </dependency>
        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.0</version>
        </dependency>

        <!-- Atmosphere -->
        <dependency>
            <groupId>org.atmosphere</groupId>
            <artifactId>atmosphere-runtime</artifactId>
            <version>2.1.3</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.1</version>
        </dependency>

        <!-- Themes -->
        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>all-themes</artifactId>
            <version>1.0.10</version>
        </dependency>

        <!-- TESTING -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.19.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>1.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>

        <!--<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> 
            <version>2.7.4</version> </dependency> -->




        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.10.Final</version>
        </dependency>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901.jdbc4</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.5.Final</version>
        </dependency>



    </dependencies>

    <repositories>
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>apache-snapshots</id>
            <name>apache-snapshots</name>
            <url>http://repository.apache.org/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>jvnet-nexus-releases</id>
            <name>jvnet-nexus-releases</name>
            <url>https://maven.java.net/content/repositories/releases/</url>
        </repository>
        <repository>
            <id>repository.jboss.org</id>
            <name>JBoss Repository for Maven</name>
            <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </repository>

        <repository>
            <id>JBoss repository</id>
            <url>http://repository.jboss.com/maven2/</url>
        </repository>
    </repositories>


    <distributionManagement>
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>sftp://primefaces.org/var/www/repository</url>
        </repository>
    </distributionManagement>

    <profiles>
        <profile>
            <id>mojarra</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <jsfVersion>Mojarra-2.2.4</jsfVersion>
                <primefacesVersion>PrimeFaces-5.1-SNAPSHOT</primefacesVersion>
                <jsf-listener>com.sun.faces.config.ConfigureListener</jsf-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>5.2</version>
                </dependency>
                <dependency>
                    <groupId>org.glassfish</groupId>
                    <artifactId>javax.faces</artifactId>
                    <version>2.2.5</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>mojarra-2.1</id>
            <properties>
                <jsfVersion>Mojarra-2.1.26</jsfVersion>
                <primefacesVersion>PrimeFaces-5.1-SNAPSHOT</primefacesVersion>
                <jsf-listener>com.sun.faces.config.ConfigureListener</jsf-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>5.2</version>
                </dependency>
                <dependency>
                    <groupId>org.glassfish</groupId>
                    <artifactId>javax.faces</artifactId>
                    <version>2.1.26</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>mojarra-2.0</id>
            <properties>
                <jsfVersion>Mojarra-2.0.11</jsfVersion>
                <primefacesVersion>PrimeFaces-5.1-SNAPSHOT</primefacesVersion>
                <jsf-listener>com.sun.faces.config.ConfigureListener</jsf-listener>
            </properties>
            <dependencies>

                <dependency>
                    <groupId>org.glassfish</groupId>
                    <artifactId>javax.faces</artifactId>
                    <version>2.0.11</version>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>myfaces</id>
            <properties>
                <jsfVersion>MyFaces-2.2.3</jsfVersion>
                <primefacesVersion>PrimeFaces-5.1-SNAPSHOT</primefacesVersion>
                <jsf-listener>org.apache.myfaces.webapp.StartupServletContextListener</jsf-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>5.1-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-api</artifactId>
                    <version>2.2.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-impl</artifactId>
                    <version>2.2.3</version>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>myfaces-2.1</id>
            <properties>
                <jsfVersion>MyFaces-2.1.12</jsfVersion>
                <primefacesVersion>PrimeFaces-5.1-SNAPSHOT</primefacesVersion>
                <jsf-listener>org.apache.myfaces.webapp.StartupServletContextListener</jsf-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>5.1-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces-mobile</artifactId>
                    <version>1.0-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-api</artifactId>
                    <version>2.1.12</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-impl</artifactId>
                    <version>2.1.12</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>myfaces-2.0</id>
            <properties>
                <jsfVersion>MyFaces-2.0.20</jsfVersion>
                <primefacesVersion>PrimeFaces-5.1-SNAPSHOT</primefacesVersion>
                <jsf-listener>org.apache.myfaces.webapp.StartupServletContextListener</jsf-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>5.1-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces-mobile</artifactId>
                    <version>1.0-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-api</artifactId>
                    <version>2.0.20</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-impl</artifactId>
                    <version>2.0.20</version>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>

我还在构建路径中添加了 hibernate-core-4.2.3.final-sourcesprimefaces-5.0 jar。

我的应用程序类是:

/**
 * Class to get the data for the UI 
 */
package com.shop.web;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import com.shop.data.Item;
import com.shop.data.Orders;
import com.shop.hibernate.application.ManageOrder;

/**
 * @author svalsalan
 *
 */
@ManagedBean(name = "itemDataBean")
@SessionScoped
public class ItemDataBean {
    private List<Item> MenItems = new ArrayList<Item>();
    private List<Item> WomenItems = new ArrayList<Item>();
    private List<Item> Items = new ArrayList<Item>();
    public List<String> selectedItems = new ArrayList<String>();
    public List<String> selectedMenItems = new ArrayList<String>();
    public List<String> selectedWomenItems = new ArrayList<String>();
    public List<Item> userselectedItems = new ArrayList<Item>();

    // public List<Item> selectedDataItems = new ArrayList<Item>();
    public Item selectedDataitem;
    // Map<Item, Integer> Quantity = new HashMap<Item, Integer>();

    List<Item> Cartlist = new ArrayList<Item>();
    Item Shirt;

    public List<Item> getItems() {
        Items = new ArrayList<Item>();

        // set an initial value for the price

        // Create items
        Shirt = new Item(1, "Shirt", 100, "S");
        Shirt.setItemid(1);
        Item tshirt = new Item(1, "T-Shirt", 200, "M");
        tshirt.setItemid(2);
        Item jean = new Item(1, "Jeans", 300, "L");
        jean.setItemid(3);
        Item Dress = new Item(0, "Dress", 300, "S");
        Dress.setItemid(4);
        Item Tops = new Item(0, "Tops", 100, "S");
        Tops.setItemid(5);
        Item skirt = new Item(0, "Skirt", 200, "S");
        skirt.setItemid(6);
        // Add them to the list
        Items.add(0, Shirt);
        Items.add(1, tshirt);
        Items.add(2, jean);
        Items.add(3, Dress);
        Items.add(4, Tops);
        Items.add(5, skirt);
        return Items;
    }

    /**
     * @return the menItems
     */
    public List<Item> getMenItems() {
        MenItems.clear();
        getItems();
        for (int i = 0; i < Items.size(); i++) {
            if (Items.get(i).getCategoryId() == 1) {
                MenItems.add(Items.get(i));
            }
        }
        return MenItems;
    }

    /**
     * @return the womenItems
     */
    public List<Item> getWomenItems() {
        WomenItems.clear();
        getItems();
        for (int i = 0; i < Items.size(); i++) {
            if (Items.get(i).getCategoryId() != 1) {
                WomenItems.add(Items.get(i));
            }
        }
        return WomenItems;

    }

    /**
     * @param menItems
     *            the menItems to set
     */
    public void setMenItems(List<Item> menItems) {
        MenItems = menItems;
    }

    /**
     * @param womenItems
     *            the womenItems to set
     */
    public void setWomenItems(List<Item> womenItems) {
        WomenItems = womenItems;
    }

    /**
     * @return the items
     */

    /**
     * @param items
     *            the items to set
     */
    public void setItems(List<Item> items) {
        Items = items;
    }

    public List<String> getSelectedMenItems() {
        return selectedMenItems;

    }

    /**
     * @return the selectedWomenItems
     */
    public List<String> getSelectedWomenItems() {
        return selectedWomenItems;
    }

    /**
     * @param selectedMenItems
     *            the selectedMenItems to set
     */
    public void setSelectedMenItems(List<String> selectedMenItems) {
        this.selectedMenItems = selectedMenItems;
        System.out.println(selectedMenItems);
    }

    /**
     * @param selectedWomenItems
     *            the selectedWomenItems to set
     */
    public void setSelectedWomenItems(List<String> selectedWomenItems) {
        this.selectedWomenItems = selectedWomenItems;

    }

    /**
     * @return the selectedItems
     */
    public List<String> getSelectedItems() {

        this.selectedItems.clear();
        selectedItems.addAll(getSelectedWomenItems());

        selectedItems.addAll(selectedMenItems);

        return selectedItems;
    }

    /**
     * @param selectedItems
     *            the selectedItems to set
     */
    public void setSelectedItems(List<String> selectedItems) {
        this.selectedItems = selectedItems;
    }

    /**
     * @return the userselectedItems
     */
    public List<Item> getUserselectedItems() {

        this.userselectedItems.clear();
        this.getSelectedItems();
        // loop through the selectedItems array
        for (String str : selectedItems) {

            // each one item in the array, loop throug the list from
            // getMenItem()
            for (Item item : Items) {

                // Match the ids' and store in a different list
                if (str.matches(Integer.toString(item.getItemid()))) {
                    // add the items to the new list
                    this.userselectedItems.add(item);
                }
            }
            // return the new list
        }

        return this.userselectedItems;
    }

    /**
     * @param userselectedItems
     *            the userselectedItems to set
     */
    public void setUserselectedItems(List<Item> userselectedItems) {
        this.userselectedItems = userselectedItems;
    }

    /**
     * @return the selectedMenItems
     */

    /**
     * @return the cartlist
     */
    public List<Item> getCartlist() {
        Cartlist.clear();

        Cartlist.addAll(getUserselectedItems());

        return Cartlist;
    }

    /**
     * @param cartlist
     *            the cartlist to set
     */
    public void setCartlist(List<Item> cartlist) {
        Cartlist = cartlist;
    }

    /**
     * @return the userselectedMenItems
     */
    public int getTotal() {
        int total = 0;

        for (Item totalItemPrice : getCartlist()) {
            total += totalItemPrice.getPrice();
        }
        return total;

    }

    /**
     * @return the selectedDataItems
     */
    // public List<Item> getSelectedDataItems() {
    // return selectedDataItems;
    // }
    //
    // /**
    // * @param selectedDataItems the selectedDataItems to set
    // */
    // public void setSelectedDataItems(List<Item> selectedDataItems) {
    // this.selectedDataItems = selectedDataItems;
    // }

    /**
     * @return the selectedDataitem
     */
    public Item getSelectedDataitem() {
        return selectedDataitem;
    }

    /**
     * @param selectedDataitem
     *            the selectedDataitem to set
     */
    public void setSelectedDataitem(Item selectedDataitem) {
        this.selectedDataitem = selectedDataitem;
    }

    public void saveOrder() {
        Orders itemsOrdered = new Orders();
        for (int i = 0; i < userselectedItems.size(); i++)
        {
            System.out.println(userselectedItems.get(i).getName());
            itemsOrdered = new Orders((userselectedItems.get(i).getName()),
                    (userselectedItems.get(i).getPrice()));
            System.out.println(itemsOrdered.getOrderName());
            System.out.println(itemsOrdered.getTotalPrice());
            itemsOrdered.setOrderDetails(Cartlist);
            System.out.println(i);
            System.out.println("Items ordered: " + itemsOrdered);
            System.out.println("List item:" + Cartlist.get(0).getName());
            ManageOrder dao = new ManageOrder();
            for (int j = i; j < Cartlist.size(); j++) {
                dao.addOrders(userselectedItems.get(j).getName(),
                        Cartlist.get(j).getPrice(), (ArrayList) Cartlist);
                System.out.println("Name: "
                        + userselectedItems.get(j).getName());
                System.out.println("Price : " + Cartlist.get(j).getPrice());
            }
        }



}

当用户单击“保存”按钮时,它应该转到 bean 类中的 saveOrder 方法。请帮我解决这个问题。 提前致谢。

最佳答案

以下是一些可能的原因:-

  1. 您应该调用 mvn package (或右键单击 > maven > 包)和 获取 war 文件 - <packaging> (在 pom 中)必须是 war

    <packaging>war</packaging>
    
  2. 如果您在 Eclipse 中的服务器上将项目作为动态 Web 项目运行,那么您应该打开项目属性(右键单击 > 属性)并选择“部署程序集”。单击“添加”,选择“构建路径条目”,然后选择“maven 依赖项”。这将指示 WTP 将 Maven 依赖项发送到服务器目录。

关于javax.el.E​​LException : java. lang.NoClassDefFoundError: org/hibernate/HibernateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32942252/

相关文章:

java - 我的代码线程已经安全了吗

java - Hibernate和mysql错误: Cannot add or update a child row

java - Birt Runtime maven Artifact 问题

java - 我应该掌握 maven 还是开始学习 gradle

java - 数字数据形式中与 += 等价的字符串是什么?

java - 具有两种同步方法的线程安全性,一种是静态的,一种是非静态的

java - 识别搜索爬虫

java - Hibernate Session.flush()效率问题

java - 如何在 Hibernate 中有效加载记录

基于编译的Class文件生成Java代码