Deux questions:package javax.persistence n'existe pas malgré l'ajout du module Eclipselink par Netbeans
première partie: quel JAR est requis? Javax.persistence-2.0.0.jar n'a-t-il pas les classes requises, en particulier javax.persistence. *?
trace de la pile comme si:
init:
deps-jar:
Created dir: /home/thufir/NetBeansProjects/JavaApplication12/build
Updating property file: /home/thufir/NetBeansProjects/JavaApplication12/build/built-jar.properties
Created dir: /home/thufir/NetBeansProjects/JavaApplication12/build/classes
Created dir: /home/thufir/NetBeansProjects/JavaApplication12/build/classes/META-INF
Copying 1 file to /home/thufir/NetBeansProjects/JavaApplication12/build/classes/META-INF
Created dir: /home/thufir/NetBeansProjects/JavaApplication12/build/empty
Created dir: /home/thufir/NetBeansProjects/JavaApplication12/build/generated-sources/ap-source-output
Compiling 2 source files to /home/thufir/NetBeansProjects/JavaApplication12/build/classes
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:8: error: package javax.persistence does not exist
import javax.persistence.*;
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:15: error: cannot find symbol
@Entity
symbol: class Entity
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:16: error: cannot find symbol
@Table(name = "fud30_groups", catalog = "fudforum", schema = "")
symbol: class Table
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:18: error: cannot find symbol
@NamedQueries({
symbol: class NamedQueries
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:28: error: cannot find symbol
@Id
symbol: class Id
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:29: error: cannot find symbol
@GeneratedValue(strategy = GenerationType.IDENTITY)
symbol: class GeneratedValue
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:30: error: cannot find symbol
@Basic(optional = false)
symbol: class Basic
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:31: error: cannot find symbol
@Column(name = "id")
symbol: class Column
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:33: error: cannot find symbol
@Basic(optional = false)
symbol: class Basic
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:34: error: cannot find symbol
@Column(name = "name")
symbol: class Column
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:36: error: cannot find symbol
@Basic(optional = false)
symbol: class Basic
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:37: error: cannot find symbol
@Column(name = "inherit_id")
symbol: class Column
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:39: error: cannot find symbol
@Basic(optional = false)
symbol: class Basic
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:40: error: cannot find symbol
@Column(name = "forum_id")
symbol: class Column
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:42: error: cannot find symbol
@Basic(optional = false)
symbol: class Basic
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:43: error: cannot find symbol
@Column(name = "groups_opt")
symbol: class Column
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:45: error: cannot find symbol
@Basic(optional = false)
symbol: class Basic
location: class Fud30Groups
/home/thufir/NetBeansProjects/JavaApplication12/src/javaapplication12/Fud30Groups.java:46: error: cannot find symbol
@Column(name = "groups_opti")
symbol: class Column
location: class Fud30Groups
18 errors
/home/thufir/NetBeansProjects/JavaApplication12/nbproject/build-impl.xml:605: The following error occurred while executing this line:
/home/thufir/NetBeansProjects/JavaApplication12/nbproject/build-impl.xml:246: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)
Deuxième partie de la question est, ce qui est (potentiellement) mal avec Netbeans? Jusqu'à hier, il semblait que l'IDE ajouterait automagiquement les classes requises au classpath lorsque, comme ici, générer une classe @Entity à partir d'une base de données existante. Dans ce cas particulier, Netbeans a ajouté des fichiers JAR. Cependant, comme ils sont ajoutés en externe au projet, il n'y a pas de dossier lib. Malheureusement, je ne connais pas assez encore pour plonger vraiment dans build.xml pour voir ce qui se passe, mais à partir du gestionnaire de bibliothèque, on dirait qu'ils sont comme si:
[email protected]:~$ tree netbeans-7.1.1/java/modules/ext/eclipselink/
netbeans-7.1.1/java/modules/ext/eclipselink/
├── eclipselink-2.3.0.jar
├── eclipselink-jpa-modelgen-2.3.0.jar
├── javax.persistence-2.0.jar
└── org.eclipse.persistence.jpa.jpql_1.0.0.jar
0 directories, 4 files
[email protected]:~$
Il semble juste de ne pas à mes souvenirs que des étapes supplémentaires, en téléchargeant les JAR manquants, étaient nécessaires dans le passé. Un paramètre dans NetBeans peut-il être incorrect ou corrompu?