Ich versuche, eine JSON-Datei-Ressource zu bekommen, um es zu verwenden, um ein Java-Objekt zu erstellen. Wenn ich versuche, meinen Code in der Intellij auszuführen, habe ich kein Problem, aber wenn ich mit mvn test
laufe, erhalte ich den folgenden Fehler.Testdatei-Ressource mit Maven erhalten
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project cadastur-backend-business: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process
[ERROR] java.lang.RuntimeException: Unable to create test class 'guiaVOTemplate.json'
[ERROR] at org.apache.maven.surefire.util.DefaultScanResult.loadClass(DefaultScanResult.java:135)
[ERROR] at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:95)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.scanClassPath(JUnit4Provider.java:222)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:107)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] Caused by: java.lang.ClassNotFoundException: guiaVOTemplate.json
[ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[ERROR] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
[ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[ERROR] at org.apache.maven.surefire.util.DefaultScanResult.loadClass(DefaultScanResult.java:131)
[ERROR] ... 6 more
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :cadastur-backend-business
Das Projekt hat die Folge Struktur:
Und über den Code, wo ich versuche, die Datei und wandeln die json zu Java-Objekt zu lesen.
package br.gov.mtur.cadastur.builder;
import br.gov.mtur.cadastur.vo.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class GuiaVOBuilder {
private GuiaVO guia;
public GuiaVOBuilder() {
this.guia = new GuiaVO();
}
public GuiaVOBuilder comId(Integer id) {
guia.setId(id);
return this;
}
public GuiaVOBuilder comPessoaFisica(PessoaFisicaVO pessoaFisica) {
guia.setPessoaFisica(pessoaFisica);
return this;
}
... //Builder methods
public GuiaVO build(){
return guia;
}
public GuiaVO buildGuiaCompleto() throws IOException {
return new ObjectMapper().readValue(GuiaVOBuilder.class.getResource("/guiaVOTemplate.json"), GuiaVO.class);
}
}
Versuchen Sie, die Datei 'guiaVOTemplate.json' nach' src \ main \ resources' zu kopieren und zu überprüfen, ob sie funktioniert. –
Danke @RITZXAVI, jetzt funktioniert es für mich, aber weißt du, warum ich die JSON-Datei nicht in 'src \ test \ resources' setzen kann? –
sicher. Wie hat es übrigens funktioniert? –