CI-server (Hudson), di cui sono responsabile, crea il progetto Maven. Dopo l'ultimo commit, la generazione non riuscita:Maven non può compilare la classe che dipende da rt.jar
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] \hudson\jobs\path to my class\MyClass.java:[33,62] package com.sun.xml.internal.messaging.saaj.packaging.mime.util does not exist
[ERROR] \hudson\jobs\path to my class\MyClass.java:[75,5] cannot find symbol
symbol : class BASE64EncoderStream
location: class |fullname of MyClass|
[ERROR] \hudson\jobs\path to my class\MyClass.java:[75,38] cannot find symbol
symbol : class BASE64EncoderStream
location: class |fullname of MyClass|
[INFO] 3 errors
classe richiesta (com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64EncoderStream) si trova in rt.jar.
ho cercato (in conformità con le istruzioni a http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies) per aggiungere la dipendenza del sistema in pom.xml del progetto:
<dependency>
<groupId>dummy</groupId>
<artifactId>dummy</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>
Non ha aiutato.
Il più interessante è che tutti i file sono stati compilati correttamente sulla macchina locale del mio collega (utilizza il compilatore di compilazione Eclipse).
In internet ho trovato la stessa domanda (link: http://maven.40175.n5.nabble.com/Why-can-t-Maven-find-com-sun-xml-internal-messaging-saaj-util-ByteOutputStream-class-td107361.html). L'ultima risposta è stata che il motivo di questo problema è il compilatore Java di Oracle.
Così, ho cambiato il jdk di Oracle in OpenJDK, ma non è stato d'aiuto.
Qualcuno ha qualche suggerimento su come risolvere questo problema?
Stavo usando ByteOutputStream e ho ricevuto questo errore. Quando l'ho cambiato in ByteArrayOutputStream, ha funzionato come un fascino. Mai saputo delle lezioni interne di JRE. – Anshuman