Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF-Java持久性API-Maven错误_Java_Maven_Jsf_Jpa - Fatal编程技术网

JSF-Java持久性API-Maven错误

JSF-Java持久性API-Maven错误,java,maven,jsf,jpa,Java,Maven,Jsf,Jpa,我正试图通过JPA在我的JSFWeb应用程序中建立一个数据库连接。我仍然被这一点的复杂性吓坏了,但在阅读了一些教程之后,我似乎终于对它有了一点了解 我有以下课程: 实体类: package com.gamerbud.model; import java.io.Serializable; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import

我正试图通过JPA在我的JSFWeb应用程序中建立一个数据库连接。我仍然被这一点的复杂性吓坏了,但在阅读了一些教程之后,我似乎终于对它有了一点了解

我有以下课程:

实体类:

package com.gamerbud.model;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author jakob
 */
@Entity
@Table(name = "Game")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Game.findAll", query = "SELECT g FROM Game g"),
    @NamedQuery(name = "Game.findByGameId", query = "SELECT g FROM Game g WHERE g.gameId = :gameId"),
    @NamedQuery(name = "Game.findByName", query = "SELECT g FROM Game g WHERE g.name = :name"),
    @NamedQuery(name = "Game.findByImage", query = "SELECT g FROM Game g WHERE g.image = :image"),
    @NamedQuery(name = "Game.findByRequests", query = "SELECT g FROM Game g WHERE g.requests = :requests")})
public class Game implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "game_id")
    private Integer gameId;
    @Basic(optional = false)
    @Column(name = "name")
    private String name;
    @Basic(optional = false)
    @Lob
    @Column(name = "description")
    private String description;
    @Basic(optional = false)
    @Column(name = "image")
    private String image;
    @Basic(optional = false)
    @Column(name = "requests")
    private int requests;

    public Game() {
    }

    public Game(Integer gameId) {
        this.gameId = gameId;
    }

    public Game(Integer gameId, String name, String description, String image, int requests) {
        this.gameId = gameId;
        this.name = name;
        this.description = description;
        this.image = image;
        this.requests = requests;
    }
...
getter and setter
...
}
package com.gamerbud.model;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author jakob
 */
public class GameController {
    private EntityManagerFactory emf;

    private EntityManager getEntityManager() {
        if (emf == null) {
            emf = Persistence.createEntityManagerFactory("GamerbudPU");
        }
        return emf.createEntityManager();
    }

    public Game[] getGames() {
        EntityManager em = getEntityManager();
        try {
            javax.persistence.Query q = em.createQuery("select c from Game as c");
            return (Game[]) q.getResultList().toArray(new Game[0]);
        } finally {
            em.close();
        }
    }
}
package com.gamerbud;

import com.gamerbud.model.Game;
import com.gamerbud.model.GameController;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author jakob
 */
@ManagedBean
@SessionScoped
public class SessionBean {

    private Game[] games;
    /**
     * Creates a new instance of SessionBean
     */
    public SessionBean() {
        this.updateGames();
    }

    public void updateGames(){
        GameController gameController = new GameController();
        games = gameController.getGames();
    }

    public Game[] getGames() {
        return games;
    }

    public void setGames(Game[] games) {
        this.games = games;
    }
}
控制器类:

package com.gamerbud.model;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author jakob
 */
@Entity
@Table(name = "Game")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Game.findAll", query = "SELECT g FROM Game g"),
    @NamedQuery(name = "Game.findByGameId", query = "SELECT g FROM Game g WHERE g.gameId = :gameId"),
    @NamedQuery(name = "Game.findByName", query = "SELECT g FROM Game g WHERE g.name = :name"),
    @NamedQuery(name = "Game.findByImage", query = "SELECT g FROM Game g WHERE g.image = :image"),
    @NamedQuery(name = "Game.findByRequests", query = "SELECT g FROM Game g WHERE g.requests = :requests")})
public class Game implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "game_id")
    private Integer gameId;
    @Basic(optional = false)
    @Column(name = "name")
    private String name;
    @Basic(optional = false)
    @Lob
    @Column(name = "description")
    private String description;
    @Basic(optional = false)
    @Column(name = "image")
    private String image;
    @Basic(optional = false)
    @Column(name = "requests")
    private int requests;

    public Game() {
    }

    public Game(Integer gameId) {
        this.gameId = gameId;
    }

    public Game(Integer gameId, String name, String description, String image, int requests) {
        this.gameId = gameId;
        this.name = name;
        this.description = description;
        this.image = image;
        this.requests = requests;
    }
...
getter and setter
...
}
package com.gamerbud.model;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author jakob
 */
public class GameController {
    private EntityManagerFactory emf;

    private EntityManager getEntityManager() {
        if (emf == null) {
            emf = Persistence.createEntityManagerFactory("GamerbudPU");
        }
        return emf.createEntityManager();
    }

    public Game[] getGames() {
        EntityManager em = getEntityManager();
        try {
            javax.persistence.Query q = em.createQuery("select c from Game as c");
            return (Game[]) q.getResultList().toArray(new Game[0]);
        } finally {
            em.close();
        }
    }
}
package com.gamerbud;

import com.gamerbud.model.Game;
import com.gamerbud.model.GameController;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author jakob
 */
@ManagedBean
@SessionScoped
public class SessionBean {

    private Game[] games;
    /**
     * Creates a new instance of SessionBean
     */
    public SessionBean() {
        this.updateGames();
    }

    public void updateGames(){
        GameController gameController = new GameController();
        games = gameController.getGames();
    }

    public Game[] getGames() {
        return games;
    }

    public void setGames(Game[] games) {
        this.games = games;
    }
}
会话Bean:

package com.gamerbud.model;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author jakob
 */
@Entity
@Table(name = "Game")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Game.findAll", query = "SELECT g FROM Game g"),
    @NamedQuery(name = "Game.findByGameId", query = "SELECT g FROM Game g WHERE g.gameId = :gameId"),
    @NamedQuery(name = "Game.findByName", query = "SELECT g FROM Game g WHERE g.name = :name"),
    @NamedQuery(name = "Game.findByImage", query = "SELECT g FROM Game g WHERE g.image = :image"),
    @NamedQuery(name = "Game.findByRequests", query = "SELECT g FROM Game g WHERE g.requests = :requests")})
public class Game implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "game_id")
    private Integer gameId;
    @Basic(optional = false)
    @Column(name = "name")
    private String name;
    @Basic(optional = false)
    @Lob
    @Column(name = "description")
    private String description;
    @Basic(optional = false)
    @Column(name = "image")
    private String image;
    @Basic(optional = false)
    @Column(name = "requests")
    private int requests;

    public Game() {
    }

    public Game(Integer gameId) {
        this.gameId = gameId;
    }

    public Game(Integer gameId, String name, String description, String image, int requests) {
        this.gameId = gameId;
        this.name = name;
        this.description = description;
        this.image = image;
        this.requests = requests;
    }
...
getter and setter
...
}
package com.gamerbud.model;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author jakob
 */
public class GameController {
    private EntityManagerFactory emf;

    private EntityManager getEntityManager() {
        if (emf == null) {
            emf = Persistence.createEntityManagerFactory("GamerbudPU");
        }
        return emf.createEntityManager();
    }

    public Game[] getGames() {
        EntityManager em = getEntityManager();
        try {
            javax.persistence.Query q = em.createQuery("select c from Game as c");
            return (Game[]) q.getResultList().toArray(new Game[0]);
        } finally {
            em.close();
        }
    }
}
package com.gamerbud;

import com.gamerbud.model.Game;
import com.gamerbud.model.GameController;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author jakob
 */
@ManagedBean
@SessionScoped
public class SessionBean {

    private Game[] games;
    /**
     * Creates a new instance of SessionBean
     */
    public SessionBean() {
        this.updateGames();
    }

    public void updateGames(){
        GameController gameController = new GameController();
        games = gameController.getGames();
    }

    public Game[] getGames() {
        return games;
    }

    public void setGames(Game[] games) {
        this.games = games;
    }
}
当我尝试运行这个程序(使用Maven和Tomcat作为服务器)时,我得到了以下错误消息,实际上并没有告诉我太多:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project gamerbud: Compilation failure
Failure executing javac, but could not parse the error:
javac: -endorseddirs requires an argument
Usage: javac <options> <source files>
use -help for a list of possible options
-> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
未能在project gamerbud上执行目标org.apache.maven.plugins:maven编译器plugin:2.3.2:compile(默认编译):编译失败
执行javac失败,但无法分析错误:
javac:-endorseddirs需要一个参数
用法:javac
使用-help获取可能选项的列表
->[帮助1]
要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。
使用-X开关重新运行Maven以启用完全调试日志记录。
有关错误和可能的解决方案的更多信息,请阅读以下文章:
[帮助1]http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我希望你们能支持我,我也会感谢每一个在JSF中使用JPA和MySQL数据库的教程或帮助

提前谢谢

根据要求,这是我的pom文件

<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>com.hsn</groupId>
    <artifactId>gamerbud</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>gamerbud</name>

     <properties>
        <!-- Netbeans specific hints -->
        <netbeans.hint.license>apache20</netbeans.hint.license>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

<dependencies>
        <!-- Apache MyFaces JSF implementation -->
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>2.1.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-impl</artifactId>
            <version>2.1.11</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Servlet specific stuff is available on every container -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </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-entitymanager</artifactId>
            <version>4.2.0.Final</version>
        </dependency>

        <!-- JUNIT -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
      <version>2.5.0-SNAPSHOT</version>
    </dependency>
  <dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>javax.persistence</artifactId>
    <version>2.1.0-SNAPSHOT</version>
  </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
      <version>2.5.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
</dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>6.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  <repositories>
    <repository>
      <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url>
      <id>eclipselink</id>
      <layout>default</layout>
      <name>Repository for library EclipseLink (JPA 2.1)</name>
    </repository>
  </repositories>
</project>

4.0.0
com.hsn
加默布德
1.0-快照
战争
加默布德
公寓20
UTF-8
org.apache.myfaces.core
MyFacesAPI
2.1.11
org.apache.myfaces.core
MyFacesImpl
2.1.11
运行时
javax.servlet
javax.servlet-api
3.0.1
假如
javax.el
埃尔api
2.2
假如
org.hibernate
休眠实体管理器
4.2.0.4最终版本
朱尼特
朱尼特
4.8.1
测试
org.eclipse.persistence
日食
2.5.0-快照
org.eclipse.persistence
javax.persistence
2.1.0-快照
org.eclipse.persistence
org.eclipse.persistence.jpa.modelgen.processor
2.5.0-快照
假如
org.apache.maven.plugins
maven编译器插件
2.3.2
1.6
1.6
${annowed.dir}
org.apache.maven.plugins
maven战争插件
2.1.1
假的
org.apache.maven.plugins
maven依赖插件
2.1
验证
复制
${annowed.dir}
真的
爪哇
javaee认可的api
6
罐子
http://download.eclipse.org/rt/eclipselink/maven.repo/
日食
违约
图书馆EclipseLink存储库(JPA2.1)

您的POM文件似乎有问题。请将其添加到问题中。具体来说,maven编译器插件的配置似乎是错误的。在哪里定义了
${annowned.dir}
属性?乍一看,是缺少目录的问题。这可能是真的,但我不知道如何解决这个问题。自从自动生成后,我就没碰过pom。