我在使用基于Spring Data的应用程序在我的环境中运行时遇到了问题.我正在运行Debian,但我的同事正在使用Mac或Ubuntu.我的环境变量中没有任何特殊设置,并且使用与其他版本完全相同的Java版本.
我在日志中看到过这一点,这表明它是一个循环引用问题导致实例化失败:
nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'flyway.CONFIGURATION_PROPERTIES':
Initialization of bean failed;
...
nested exception is
org.springframework.beans.factory.BeanCurrentlyInCreationException:
Error creating bean with name 'flyway': Requested bean is currently in
creation: Is there an unresolvable circular reference?
Run Code Online (Sandbox Code Playgroud)
所以问题似乎是飞路需要一些依赖,他们需要飞路.
问题是,为什么这只发生在我的环境而不是任何人?即使在内存中使用H2的测试中,我也看到了问题,因此不是我的数据库出错了.
是否有可能以某种方式混淆Spring自动装配,并尝试以错误的顺序执行操作,以便在尝试设置存储库时为null?
Spring是否有一个严重实现的拓扑排序用于排序依赖项?
为什么它会对我的环境造成不良影响?
类路径的排序会影响它的行为吗?
======================
应用程序不会以此错误开头:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contentItemRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Repository interface must not be null on initialization!
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:127)
at …Run Code Online (Sandbox Code Playgroud) 用这个稍微扯掉我的头发......我正在尝试在公共子网的 VPC 中的 Fargate 上运行 Docker 映像。当我将此作为任务运行时,我得到:
ResourceInitializationError: unable to pull secrets or registry auth: pull
command failed: : signal: killed
Run Code Online (Sandbox Code Playgroud)
如果我通过 NAT 在私有子网中运行任务,它就可以工作。如果我在默认 VPC 的公共子网中运行它,它也可以工作。
我已经检查了这里的建议:
Aws ecs fargate ResourceInitializationError:无法提取机密或注册表身份验证
特别是,我设置了安全组以允许所有流量。还设置了网络 ACL 以允许所有流量。我什至对 IAM 权限非常开放,以尝试消除这种可能性:
任务执行角色有:
{
"Action": [
"kms:*",
"secretsmanager:*",
"ssm:*",
"s3:*",
"ecr:*",
"ecs:*",
"ec2:*"
],
"Resource": "*",
"Effect": "Allow"
}
Run Code Online (Sandbox Code Playgroud)
具有信任关系,允许 ecs-tasks 承担此角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
安全组是:
sg-093e79ca793d923ab All traffic All traffic …Run Code Online (Sandbox Code Playgroud) 我可以使用 VCS -> Subversion -> 注释,告诉 IntelliJ (12) 使用最后在特定行中检查的用户来注释代码行。在我目前工作的地方,这些用户 ID 只是数字和字母。有谁知道是否有办法让我输入从 ids 到更用户友好的开发人员名称的映射?也许是一个插件?
我知道有代码审查工具可以帮助我,JetBrains 或 Atlassian 或其他工具,但我们这里没有这些工具,并且获得新工具的批准是一个漫长的过程。如果我能做到以上几点,那对我会有很大帮助。
有一些插件可以使用来自 Maven 的 Eclipse 格式化程序来格式化代码,并且不难找到从命令行运行它的说明。但是,此格式化程序不会组织/优化导入语句。
我想这样做的原因是我已经生成了一些代码,使用了一个模板。预先确定需要哪些导入以及不需要哪些导入会很复杂,因此我最终导入了很多最终没有使用的东西。之后清理未使用的导入的格式化程序将巧妙地解决问题。
具体来说,我想自动删除未使用的导入,而不是从 IDE 中删除。我怎样才能做到这一点?
如果我在日志记录模式中的异常堆栈跟踪之前放置一个换行符:
<Pattern>%d{HH:mm:ss.SSS} %-5level [%thread] %logger{36} %msg %n %rEx{short} %n</Pattern>
Run Code Online (Sandbox Code Playgroud)
然后打印一个额外的换行符,所以正常的日志语句最终在它们之间有空行。
如果我删除额外的换行符:
<Pattern>%d{HH:mm:ss.SSS} %-5level [%thread] %logger{36} %msg %rEx{short} %n</Pattern>
Run Code Online (Sandbox Code Playgroud)
然后堆栈跟踪不会从新行开始,使它们难以阅读。
任何人都可以想出一种方法让 logback 只在有堆栈跟踪时打印额外的换行符,否则不打印?
我已经应用了一些静态代码分析 - 并将所有Java包级别字段转换为protected.这大多是正确的,因为我忘了明确设置访问修饰符,并且受保护通常是我在那些情况下所追求的.
不幸的是,我应用的重构是IntelliJ弱化访问修饰符,它也改变了很多public - > protected,on constructors等等.
所以,一旦我有一个带有这样的语句的差异:
-int myField;
+protected int myField;
Run Code Online (Sandbox Code Playgroud)
和
-public MyConstructor()
+protected MyConstructor()
Run Code Online (Sandbox Code Playgroud)
有没有办法编写一个在提交期间运行的脚本,并且只允许上面的第一个例子,但没有第二个?我可以搞清楚脚本,我只是不确定如何运行它 - 它是一个预提交钩子吗?
如果它是一个预提交钩子,你怎么检查这样一个脚本中的diff并接受/拒绝它基于greped它的某些字符串?
我已经使用 API“InitiateAuth”针对 Cognito 用户池进行了身份验证,并收到了一个 id 令牌:
{
sub: "8aec..." ,
aud:"2gr0fdlr647skqqghtau04vuct",
iss:"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_LzM42GX6Q",
....
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试通过 API“GetId”获取 ID:
{
AccountId: "345745834314"
IdentityPoolId: "us-east-1:fb4d5209-33b1-46e2-923a-8aa206d5c7aa"
Logins: {
"cognito-idp.us-east-1.amazonaws.com/us-east-1_LzM42GX6Q": "eyJr...."
}
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个身份池,并正确地将 Cognito 用户池设置为提供者。但我总是得到响应表 getId:
“登录令牌无效。颁发者与提供者名称不匹配”
我还尝试将登录列表中的提供者名称更改为:
https://cognito-idp.us-east-1.amazonaws.com/us-east-1_LzM42GX6Q
因此它与令牌在 iss 字段中的内容完全匹配,但这并不能解决问题,仍然是关于发行者与提供者名称不匹配的相同消息。
知道我在这里做错了什么吗?
我已经设置了带有可点击元素的dropzone.单击该按钮会导致dropzone打开文件选择器两次,而不是仅打开一次,第二次在选择第一个文件后立即打开.
初始代码是:
Dropzone.autoDiscover = false;
$(document).ready(function(){
// Remove the template from the document.
var previewNode = document.querySelector("#template");
previewNode.id = "";
var previewTemplate = previewNode.parentNode.innerHTML;
previewNode.parentNode.removeChild(previewNode);
$("div#photo").dropzone({
url: "/blackhole/",
thumbnailWidth: 240,
thumbnailHeight: 240,
parallelUploads: 1,
maxFiles:1,
maxFilesize: 5,
uploadMultiple: false,
previewTemplate: previewTemplate,
autoProcessQueue: true,
previewsContainer: "#photoPreview",
clickable: ".fileinput-button",
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
}
});
Run Code Online (Sandbox Code Playgroud)
页面元素是:
<div class="table table-striped" class="files">
<div id="photo">
<div id="actions" class="row">
<div class="col-lg-7">
<button type="button" class="btn btn-success fileinput-button">
<i class="glyphicon glyphicon-plus"></i>
<span>Choose file...</span> …Run Code Online (Sandbox Code Playgroud) 我只是 SaltStack 的初学者。我可以看到有一个 pkgrepo 模块可用于设置包 repo 以便从中安装包。
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkgrepo.html
给出的一个例子是:
base:
pkgrepo.managed:
- humanname: Google Chrome
- name: deb http://dl.google.com/linux/chrome/deb/ stable main
- dist: stable
- file: /etc/apt/sources.list.d/chrome-browser.list
- require_in:
- pkg: google-chrome-stable
- gpgcheck: 1
- key_url: https://dl-ssl.google.com/linux/linux_signing_key.pub
Run Code Online (Sandbox Code Playgroud)
我不明白的是我把上面的代码放在哪里?我在 /srv/salt/top.sls 和其他状态的 .sls 文件中尝试过,但这是不对的。它是如何完成的?
我需要在 docker 构建期间在 Dockerfile 中引用主机或主机网络,该怎么做?我想这样做,克隆一些 git 存储库,或者 scp 一些文件来设置图像。
克隆 github 存储库很容易,因为 docker 会为此解析 dns。但是,我的主机网络没有可用于正在构建的 docker 映像的 dns 条目。
事实上,我什至不知道主机的IP地址是什么,更不用说设置dns了。
java ×3
amazon-ecr ×1
amazon-ecs ×1
apt ×1
aws-fargate ×1
debian ×1
docker ×1
dropzone.js ×1
formatting ×1
git ×1
import ×1
logback ×1
pre-commit ×1
salt-stack ×1
spring ×1
spring-data ×1
svn ×1