IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

[MAVEN][JASPER]UnsupportedClassVersionError lors de l'exécution suite à génération à partir du POM


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut [MAVEN][JASPER]UnsupportedClassVersionError lors de l'exécution suite à génération à partir du POM
    Bonjour,

    J'ai des templates de rapports JasperReports que je désire compiler à l'aide de Maven 2.

    J'ai suivi les indications que j'ai pu trouver sur le site du jasperreports-maven-plugin (org.codehaus.mojo) et mes templates sont effectivement compilés.
    Cependant je ne peux plus générer de rapport car j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.lang.UnsupportedClassVersionError: Bad version number in .class file
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at net.sf.jasperreports.engine.util.JRClassLoader.loadClass(JRClassLoader.java:338)
    ...
    Il semblerait que le problème provienne du fait que la JVM utilisée pour compiler les templates n'est pas la même que la 5.0 de l'exécution.

    Comment forcer Maven à utiliser la version que je veux pour le compilateur ?

  2. #2
    Membre éclairé

    Inscrit en
    Août 2002
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Août 2002
    Messages : 302
    Par défaut
    Bonjour,
    Je ne pense pas que le problème vienne de la version de la jvm. Néanmoins pour forcer maven à compiler avec une version donnée il suffit de déclarer maven-compiler-plugin avec comme conf target 1.5. réfère toi au site de référence de ce plugin.
    Pour ce qui est de ton erreur c soit la version de jasper-report qui n'est pas bonne, soit un problème de clean.
    Pour éviter toute confusion comme dépendance à ton plugin la même version de jasper-report avec laquelle tu génères tes rapports et fais un clean pour qu'il recompile ton projet si tes datasources se trouvent dans des packages de ton ou tes projets.
    Le contenu de ton pom pourrait nous aider à mieux cerner l'erreur.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Citation Envoyé par nannous Voir le message
    Bonjour,
    Je ne pense pas que le problème vienne de la version de la jvm. Néanmoins pour forcer maven à compiler avec une version donnée il suffit de déclarer maven-compiler-plugin avec comme conf target 1.5. réfère toi au site de référence de ce plugin.
    Pour ce qui est de ton erreur c soit la version de jasper-report qui n'est pas bonne, soit un problème de clean.
    Pour éviter toute confusion comme dépendance à ton plugin la même version de jasper-report avec laquelle tu génères tes rapports et fais un clean pour qu'il recompile ton projet si tes datasources se trouvent dans des packages de ton ou tes projets.
    Le contenu de ton pom pourrait nous aider à mieux cerner l'erreur.
    Bonjour,

    Lors de l'exécution de maven j'obtiens la trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MAVEN_OPTS=-Dfile.encoding=utf8
    MAVEN IS USING JDK 1.6
    [INFO] Scanning for projects...
    Mon serveur web est lui en JRE 1.5
    C'est pour cela que je soupçonne ce genre de souci.

    J'ai déjà essayé d'ajouter une déclaration "maven-compiler-plugin" mais cela n'a rien changé à la log de maven. Je n'ai pas systématiquement essayé de générer mon PDF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <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>
            </configuration>
          </plugin>
    Je vais réessayer...

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Non, ça ne fontionne pas.

    J'ai essayé des 2 façons suivantes :

    Code Comme indiqué dans la documentation (maven.apache.org) : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    	<plugins>
    ...
    			<plugin>
    				<groupId>org.codehaus.mojo</groupId>
    				<artifactId>jasperreports-maven-plugin</artifactId>
    				<version>1.0-beta-2</version>
    				<executions>
    					<execution>
    						<phase>compile</phase>
    						<goals>
    							<goal>compile-reports</goal>
    						</goals>
    					</execution>
    				</executions>
    				<configuration>
    					<sourceDirectory>${jasperSrcPath}</sourceDirectory>
    					<outputDirectory>${jasperBinPath}</outputDirectory>
    					<xmlValidation>true</xmlValidation>
    				</configuration>
    				<dependencies>
    					<dependency>
    						<groupId>net.sf.jasperreports</groupId>
    						<artifactId>jasperreports</artifactId>
    						<version>${versionJasper}</version>
    					</dependency>
    				</dependencies>
    			</plugin>
    
    			<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>
    				</configuration>
    			</plugin>
    		</plugins>

    Code directement sur le plugin (jasperreports-maven-plugin) : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    			<plugin>
    				<groupId>org.codehaus.mojo</groupId>
    				<artifactId>jasperreports-maven-plugin</artifactId>
    				<version>1.0-beta-2</version>
    				<executions>
    					<execution>
    						<phase>compile</phase>
    						<goals>
    							<goal>compile-reports</goal>
    						</goals>
    					</execution>
    				</executions>
    				<configuration>
    					<source>1.5</source>
    					<target>1.5</target>
    					<sourceDirectory>${jasperSrcPath}</sourceDirectory>
    					<outputDirectory>${jasperBinPath}</outputDirectory>
    					<xmlValidation>true</xmlValidation>
    				</configuration>
    				<dependencies>
    					<dependency>
    						<groupId>net.sf.jasperreports</groupId>
    						<artifactId>jasperreports</artifactId>
    						<version>${versionJasper}</version>
    					</dependency>
    				</dependencies>
    			</plugin>

    Ca ne change malheureusement rien.
    Ce qui semble normal vu la remarque sur le site officiel : «Note: Merely setting the target option does not guarantee that your code actually runs on a JRE with the specified version. ...»

    Par contre lorsque je change le JRE de mon serveur local en 1.6 cela fonctionne avec mon POM original. Mais je n'ai pas la main sur la version de la JVM du serveur de production

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    J'ai également testé cette méthode sans succès :
    Code Compiling Sources Using A Different JDK : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
              <verbose>true</verbose>
              <fork>true</fork>
              <executable>${JAVA15_HOME}/bin/javac</executable>
              <compilerVersion>1.5</compilerVersion>
            </configuration>
          </plugin>

    Par contre, si je passe directement le JAVA15_HOME dans le paramètre classpath du batch maven tout est compilé en 1.5 et cela fonctionne.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2010, 16h15
  2. Réponses: 8
    Dernier message: 10/11/2005, 15h58
  3. Analyser les exceptions survenues lors de l'exécution
    Par cedricgirard dans le forum Langage
    Réponses: 10
    Dernier message: 13/10/2005, 15h22
  4. Problème lors de l'exécution de mes programmes
    Par darkmalak01 dans le forum Langage
    Réponses: 7
    Dernier message: 27/09/2005, 18h35
  5. Message d'erreur Windows lors de l'exécution de l'appli D6-
    Par kolac dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/12/2004, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo