web-dev-qa-db-fra.com

erreur de compilation, le package javax.ws.rs n'existe pas, les dépendances n'ont pas été résolues à partir de maven

J'avais mentionné les bibliothèques de dépendance dans le fichier pom, le chemin du système de la bibliothèque existe également, mais lors de la compilation à l'aide de maven clean install -e -X, une erreur est générée en indiquant que le package n'existe pas.

**[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/gopc/workspace/RestfulService/src/restfu/Hello.Java:[4,19] C:\Users\gopc\workspace\RestfulService\src\restfu\Hello.Java:4: package javax.ws.rs does not exist
[ERROR] /C:/Users/gopc/workspace/RestfulService/src/restfu/Hello.Java:[5,19] C:\Users\gopc\workspace\RestfulService\src\restfu\Hello.Java:5: package javax.ws.rs does not exist
[ERROR] /C:/Users/gopc/workspace/RestfulService/src/restfu/Hello.Java:[6,19] C:\Users\gopc\workspace\RestfulService\src\restfu\Hello.Java:6: package javax.ws.rs does not exist
[ERROR] /C:/Users/gopc/workspace/RestfulService/src/restfu/Hello.Java:[8,1] C:\Users\gopc\workspace\RestfulService\src\restfu\Hello.Java:8: package javax.ws.rs.core does not exist
[ERROR] /C:/Users/gopc/workspace/RestfulService/src/restfu/Hello.Java:[21,2] C:\Users\gopc\workspace\RestfulService\src\restfu\Hello.Java:21: cannot find symbol
symbol: class Path**

Fichier 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>RestfulService</groupId>
  <artifactId>RestfulService</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>${basedir}/src</sourceDirectory>
    <outputDirectory>${basedir}/build/classes</outputDirectory>
  <pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
</pluginManagement>

</build>

<dependencyManagement>
<dependencies>

  <dependency>
    <groupId>jersey-server</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.4</version>
    <scope>compile</scope>
    <systemPath>${basedir}/lib/jersey-server-1.4.jar</systemPath>
  </dependency>

<dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs</artifactId>
        <version>1.4</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/javax.ws.rs.jar</systemPath>
</dependency>
</dependencies>
</dependencyManagement>
</project>
11
Gopal

Vous devez inclure les dépendances Java EE dans votre POM, avec une étendue provided (c'est-à-dire que les fichiers seront éventuellement fournis par le serveur d'applications, mais que j'ai besoin d'eux pour la compilation).

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>
27
Perception

J'avais ce problème et d'autres problèmes similaires après la mise à jour du système, lorsque NetBeans a changé de polices et de l'interface graphique en général. J'ai résolu ce problème en ajoutant Java EE 6 API Library dans NetBeans IDE en faisant 

myProject->Properties->Libraries->Add Library

5
4pie0

Je pense que cette dépendance est meilleure

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.1.1</version>
</dependency>
4
Kerwong

Jersey est publié dans le référentiel Java.net; utilisez simplement ceci (ou mieux éditez vos paramètres utilisateur.xml):

<repositories>
    <repository>
        <id>maven2-repository.Java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.Java.net/maven/2/</url>
        <layout>default</layout>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.Sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>
</dependencies>

JSR311 (javax.ws.rs) sera téléchargé automatiquement par maven comme dépendance jersey-core.

2
guido

J'ai résolu le problème en ajoutant les dépendances entre les balises <project> au lieu de dans la gestion des dépendances.

2
Gopal

La dépendance à laquelle @Perception a répondu est également nécessaire, mais elle ne me suffisait pas non plus. La dépendance suivante était également nécessaire:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>

https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api/2.0

Cela a résolu le problème pour moi!

1
Nena

Dans mon cas, c’était IntelliJ 'make' qui ne fonctionnait pas, bien que l’installation propre de MVN a bien fonctionné. La solution consiste à supprimer les deux "modules" erronés de la "structure de projet" -> onglet Modules, les modules étant: principal et test. D'une manière ou d'une autre, ils y sont entrés en créant un projet à partir d'une source existante. 

0
truthseeker