小编Vik*_*ite的帖子

opentable嵌入式PostgreSQL无法正常工作

我第一次使用otj-pg-embedded,并希望将其合并到我们的测试框架中。详细如下

以下是Maven依赖项:

 <dependency>
            <groupId>com.opentable.components</groupId>
            <artifactId>otj-pg-embedded</artifactId>
            <version>0.12.5</version>
            <scope>test</scope>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

代码是:

EmbeddedPostgres pg = EmbeddedPostgres.start();
 Connection connection = pg.getPostgresDatabase().getConnection();
 Statement s = connection.createStatement();
 ResultSet rs = s.executeQuery("SELECT 1");
 assertEquals(1, rs.getInt(1));
Run Code Online (Sandbox Code Playgroud)

但是它失败,并在代码的第1行出现java.lang.IllegalStateException。

堆栈跟踪为:

initdb: invalid locale settings; check LANG and LC_* environment variables

java.lang.IllegalStateException: Process [/var/folders/rj/3jd5_2n16g37lv1v550g9cqw0000gp/T/embedded-pg/PG-b210101549c90a94dbbada389b65c5d2/bin/initdb, -A, trust, -U, postgres, -D, /var/folders/rj/3jd5_2n16g37lv1v550g9cqw0000gp/T/epg2729813194709143982, -E, UTF-8] failed


        at com.opentable.db.postgres.embedded.EmbeddedPostgres.system(EmbeddedPostgres.java:593)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres.initdb(EmbeddedPostgres.java:230)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres.<init>(EmbeddedPostgres.java:148)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres$Builder.start(EmbeddedPostgres.java:580)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres.start(EmbeddedPostgres.java:480)
Run Code Online (Sandbox Code Playgroud)

我在这里配置缺少什么吗?任何帮助,将不胜感激。

java postgresql in-memory-database

6
推荐指数
1
解决办法
462
查看次数

如何使用 Spring REST multipart 分块发送大文件(REST 客户端)

我正在使用 spring REST 编写一个将文件上传到数据库的客户端。以下是我无法更改的服务器端控制器代码:

@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<UploadResponseDto> uploadFile(@RequestParam("file") MultipartFile file) throws IOException {

    String contentType =  file.getContentType();
    if ( contentType == null || !contentType.equalsIgnoreCase(APPLICATION_OCTET_STREAM)) {
        contentType = APPLICATION_OCTET_STREAM;
    }
    GridFSFile gridFSFile = gridFsTemplate.store(file.getInputStream(), file.getOriginalFilename(), contentType);

    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    String fileLocation = linkTo(FileAttachmentController.class).slash(gridFSFile.getId()).toUri().toString();
    headers.add(LOCATION, fileLocation);
    UploadResponseDto uploadResponseDto = new UploadResponseDto(file.getOriginalFilename(), fileLocation);
    return new ResponseEntity<>(uploadResponseDto, headers, HttpStatus.CREATED);
}
Run Code Online (Sandbox Code Playgroud)

我发送文件的客户端代码是:

SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
    factory.setBufferRequestBody(false);
    RestTemplate restTemplate = new RestTemplate(factory);

    HttpHeaders headers = new HttpHeaders();
    headers.set(HttpHeaders.AUTHORIZATION, "Bearer …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-mvc

5
推荐指数
1
解决办法
7753
查看次数

标签 统计

java ×2

in-memory-database ×1

postgresql ×1

rest ×1

spring ×1

spring-mvc ×1