web-dev-qa-db-fra.com

impossible d'accéder à org.springframework.core.env.EnvironmentCapable

J'essaie d'obtenir un haricot de printemps dans une application Web en l'utilisant:

WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
AClass aClass = (aClass) wac.getBean("aClass");

Et, lorsque je lance compile/test/package avec maven, une erreur se produit:

cannot access org.springframework.core.env.EnvironmentCapable
[ERROR] class file for org.springframework.core.env.EnvironmentCapable not found

Le plus étrange est que org.springframework.core.env.EnvironmentCapable existe! : /

Configuration de base du projet:

  • Spring 3.1.1.RELEASE (Il n'y a pas d'autre version de spring dans classpath)
  • Maven 3
  • JSF 2.1
  • API Servlet 2.5

Toute idée est la bienvenue!

9
Ellison Alves

Enfin, je l'ai résolu! :)

Dans le fichier pom.xml, je devais définir l'étendue des dépendances de Spring à compiler. (Oui, je sais que c'est l'étendue par défaut des dépendances, mais pour une raison quelconque, Maven n'était pas capable du travail). Voir un morceau de mon fichier pom.xml qui a fait disparaître le problème:

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
        <scope>compile</scope>
    </dependency>


    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
        <scope>compile</scope>
    </dependency>

Notez que:

  • Si vous rencontrez ce problème, assurez-vous que vous utilisez un ressort version 3.1 ou supérieure.
  • Rappelez-vous que $ {spring.version}, dans mon cas, est 3.1.1.RELEASE.

J'espère que cela aide plus de gens.

6
Ellison Alves

Je faisais face au même problème, maven se plaint de org.springframework.core.env.EnvironmentCapable, même avec le fichier là-bas, à l'intérieur du bocal: C:\Users\fabio\.m2\repository\org\springframework\spring-core\4.3.12.RELEASE\spring-core-4.3.12.RELEASE.jar.

La solution dans mon cas était de supprimer le dossier .m2. Maven a donc téléchargé à nouveau tous les pots. Peut-être était-ce un fichier abrégé.

J'espère que ça aide quelqu'un!

2
Fábio Magagnin

Moi aussi faire face à ce problème. J'ai utilisé Spring 4.1.6 avec maven 3 avec RabbitMQ.

<dependency>
      <groupId>org.springframework.amqp</groupId>
      <artifactId>spring-amqp</artifactId>
      <version>1.1.4.RELEASE</version>
</dependency>

Cette dépendance a forcé Tomcat à mourir et à montrer ces problèmes. Je n'ai pas compris pourquoi cela crée des problèmes. mais finalement, j’inclus explicitement jar dans le dossier lib et c’est ainsi que j’ai résolu ce problème.

0
Ronnie

Ajoutez cette dépendance au fichier pom.xml. Vous pouvez le corriger.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>1.4.2.RELEASE</version>        
</dependency>
0
Matrix