Я пытаюсь загрузить файл .json
для тестирования в конвейере Beam.
Код выглядит как
...
public class ExtractCsvMessageTest {
@Rule public final transient TestPipeline pipeline = TestPipeline.create();
final String filepath = "com/project/functions/ExtractCsvMessageTest/";
final String filename = filepath + "comma_delimited.json";
final ClassLoader classLoader = getClass().getClassLoader();
final File commaDelimited = new File(classLoader.getResource(filename).getFile());
...
После запуска отладчика я вижу строка, выдающая ошибку:
final File commaDelimited = new File(classLoader.getResource(filename).getFile());
Мой путь выглядит как
test
├── java
│ └── com
│ └── project
│ ├── functions
│ │ ├── ExtractCsvMessageTest.java
│ └── transforms
└── resources
└── com
└── project
└── functions
└── ExtractCsvMessageTest
└── comma_delimited.json
Здесь есть похожие вопросы, но я не могу найти ничего, что помогло бы решить эту проблему.
Кроме того, я использую VSCode, и я просто создал путь из resources
вручную.
Наконец, мой .classpath
равен
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/>
<classpathentry kind="src" path="src/test/java" output="build/classes/test">
<attributes>
<attribute name="test" value="true" />
</attributes>
</classpathentry>
</classpath>
tl: dr
Почему
final File commaDelimited = new File(classLoader.getResource(filename).getFile());
возвращает null
?