java - 如何使用 Java 在 Play 框架中读取 JSON 文件
问题描述
我正在尝试从我的播放应用程序中JSON
的包中读取文件。test/resources
我越来越com.couchbase.client.java.error.DocumentDoesNotExistException
。我相信我的路径不正确,有人可以建议如何走绝对路径吗?
public class AppControllerTest extends WithApplication {
@Inject
AppDaoServiceImpl appDaoServiceImpl;
private CouchbaseEnvironment env;
private static Cluster cluster = null;
private static Bucket bucket = null;
private String testResources = System.getProperty("java.class.path") + "/test/resources/";
private static final ALogger logger = Logger.of(AppControllerTest.class);
@Rule
public ExpectedException thrown = ExpectedException.none();
@Override
protected Application provideApplication() {
return new GuiceApplicationBuilder().build();
}
@Before
public void init() {
env = DefaultCouchbaseEnvironment.create();
cluster = CouchbaseCluster.create(env, "127.0.0.1:8091");
bucket = cluster.openBucket("CLUSTER", "admin123");
try {
String docId = "ABEBV_common";
File testResource = new File(testResources + "ABEBV_common.json");
FileInputStream is = new FileInputStream(testResource);
JsonNode testData = Json.parse(is);
RawJsonDocument rawJsonDocument = RawJsonDocument.create(docId, testData.asText());
bucket.upsert(rawJsonDocument);
} catch (Exception e) {
}
}
@Test
public void testGenericData() {
Http.RequestBuilder request = new Http.RequestBuilder().method(GET).uri("/app/ms/genericdata/ABEBV")
.header("client_id", "chase");
Result result = route(app, request);
assertEquals(OK, result.status());
assertEquals("application/json", result.contentType().get());
assertTrue(contentAsString(result).contains("141-GYCVZY"));
}
@After
public void deleteDocuments() {
bucket.remove("ABEBV_common");
bucket.close();
cluster.disconnect();
}
}
解决方案
是的,您的路径不正确, System.getProperty("java.class.path") 将返回 jvm 所指的所有 java 类路径您必须使用“user.dir”。
private String testResources = System.getProperty("user.dir") + "/test/resources/";
推荐阅读
- python - 将值附加到 Pandas 系列
- python - 最有效的字符串相似度度量函数
- java - 频繁的方向变化问题
- spring - 如何使用 mongoDB 在 Spring boot2 中将日期转换为纪元(unix 时间戳)?
- javascript - 如何创建添加调用本地主机 URL 的上下文菜单项的 Firefox 扩展
- java - 如何解决两个 aar 具有相同的类?
- javascript - JavaScript 将 YYYY-MM-DD-HH-MM-SS 转换为纪元
- gnuplot - 在 GNUPLOT 中绘制 2D 图(数据)的部分
- cmake - "Rosetta" 用于切换到原生 CMake CUDA 支持
- forms - 引导程序 3 的表单设计问题