我使用Gradle构建的Spring应用程序有问题.应用程序包括MongoDB(来自Heroku的MongoHQ).
我管理了如何在heroku上推送所有内容,我已将此代码添加到我的项目中:
@Configuration
public class MongoHQConfiguration {
public @Bean MongoDbFactory mongoDbFactory() throws MongoException, UnknownHostException {
return new SimpleMongoDbFactory(new MongoURI(System.getenv("MONGOHQ_URL")));
}
public @Bean MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
}
Run Code Online (Sandbox Code Playgroud)
在使用gradle将buildpack更改为one之后,我使用MongoHQ Sandbox在Heroku免费帐户上推送了所有内容.
但在尝试通过Web浏览器运行我的应用程序后,我收到此错误:
应用程序中发生错误,无法提供您的页面.请稍后重试.
如果您是应用程序所有者,请检查日志以获取详细信息.
heroku logs 给我这个输出:
2014-10-15T18:19:30.293964 + 00:00 heroku [web.1]:用命令启动进程
java -Xmx384m -Xss512k -XX:+UseCompressedOops -jar build/libs/*.jar2014-10-15T18:19:30.797673 + 00:00 app [web.1]:错误:无法访问jarfile build/libs/*.jar
2014-10-15T18:19:31.474525 + 00:00 heroku [web.1]:状态从开始变为崩溃
2014-10-15T18:19:31.464753 + 00:00 heroku [web.1]:进程退出状态1
2014-10-15T18:19:32.577398 + 00:00 heroku [router]:at = error code = H10 desc ="App crashed"method …
我有以下docker-compose.yml文件:
version: '3'
services:
postgres:
image: postgres
container_name: postgres
ports:
- "5431:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=anime
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
Run Code Online (Sandbox Code Playgroud)
此配置启动 Postgres 数据库。在卷中我定义了 init.sql,它应该设置一个表:
CREATE TABLE anime (
anime_id INT PRIMARY KEY,
title TEXT
);
Run Code Online (Sandbox Code Playgroud)
然后,我想用 CSV 文件中的数据填充 Postgres 数据库。
我尝试向 docker-compose 添加另一个卷:
- ./preload.sql:/preload/preload.sql
Run Code Online (Sandbox Code Playgroud)
使用该脚本:
copy anime FROM 'docker/data/AnimeList.csv' DELIMITER ',' CSV HEADER;
Run Code Online (Sandbox Code Playgroud)
CSV 文件位于data文件夹中,与docker-compose.yml.
但它不起作用。数据库已正确创建,但它没有表和数据。当我连接到 Docker 容器,运行'psql命令并尝试获取anime表时,出现以下错误:
Did not find any relation named "anime".
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在 docker-compose …
Helm Hooks 安装后和 Kubernetes initcontainers 之间有什么区别?据我了解,Hooks 用于定义 Pod 生命周期不同阶段的一些操作,在这种情况下是安装后,而 initcontainers 则允许在部署到 Pod 之前初始化容器。
post-install据我了解, initcontainer 允许做同样的事情,即初始化数据库。
那是对的吗?哪种方法更好?
我知道目的是什么以及如何将 Stream 作为查询输出处理,即:
Stream<Person> findAll();
Run Code Online (Sandbox Code Playgroud)
然而,最近我偶然发现org.springframework.data.util.Streamable<T>,其使用方式与 a 相同Stream:
Streamable<Person> findByNameContaining(String name, Sort sort);
Run Code Online (Sandbox Code Playgroud)
的用例是什么Streamable?
我想尝试一下具有预览功能的最新 Java 15。我使用的是 Spring Boot 2.4.0-M2 和 Gradle 6.7-rc2,它们都支持 Java 15 功能。
我想使用 jib 从我的项目构建一个 docker 镜像。这是我的副臂配置:
jib {
from {
image = 'openjdk:15-jdk'
}
to {
image = '<username>/<project>'
}
container {
jvmFlags = ['--enable-preview']
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我运行时,./gradlew jib我收到以下错误:
Execution failed for task ':jib'.
> Records requires ASM8
Run Code Online (Sandbox Code Playgroud)
这是使用标志运行时的输出--info:
> Task :jib FAILED
Caching disabled for task ':jib' because:
Build cache is disabled
Task ':jib' is not up-to-date because:
Task has not declared any outputs …Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用 Hazelcast(JCache 标准)进行缓存的分布式应用程序。
我有一个用例,我应该对集群中的特定键加锁,以防止更新期间调用。
我知道 EhCache 有一个非常相似的东西,它叫做 acquireReadLockOnKey(Object key)。
如何使用 JCache 和/或 Hazelcast 实现这种锁定?
我必须将所有密钥存储在IgniteCache中,不幸的是,此方法未在Ignite中实现。我正在使用Java客户端。我认为这是一种常见方法,Ignite团队未实施该方法的原因是什么?
有没有有效的解决方案来获取密钥?
java ×4
docker ×2
gradle ×2
spring ×2
spring-boot ×2
caching ×1
deployment ×1
hazelcast ×1
heroku ×1
ignite ×1
jcache ×1
jib ×1
jsr107 ×1
kubernetes ×1
postgresql ×1
spring-data ×1