您是否同意Java类的设计者java.io.IOException应该使其成为一个未经检查的运行时异常,java.lang.RuntimeException而不是仅从派生的派生异常派生java.lang.Exception?
我认为该类IOException应该是一个未经检查的异常,因为应用程序几乎无法解决文件系统错误等问题.然而,当你不能抛出异常,埃利奥特·鲁斯蒂·阿罗德声称,大多数I/O错误是短暂的,所以你可以放弃之前重试I/O操作几次:
例如,IOComparator可能不会出现I/O错误,但是 - 因为许多I/O问题是暂时的 - 您可以重试几次,如清单7所示:
通常情况如此吗?Java应用程序可以纠正I/O错误还是等待系统恢复?如果是这样,那么检查IOException是合理的,但如果不是这样,则应取消选中IOException,以便业务逻辑可以将此异常的处理委托给单独的系统错误处理程序.
根据Compose中的Controlling启动顺序,可以通过使用" wait-for-it "脚本来控制Docker Compose启动容器的顺序.脚本需要一个参数以及脚本在端口可用时应该执行的命令.文档建议Docker Compose使用该选项调用此脚本.但是,如果使用此选项,容器将不再运行其默认值,或者因为覆盖默认值.wait-for-it.shhost:portentrypoint:ENTRYPOINTCMDentrypoint:
如何提供此默认命令wait-for-it.sh以便脚本可以调用默认值ENTRYPOINT或CMD满足它等待的条件?
就我而言,我已经实现了一个wait-for-file.sh轮询等待文件存在的脚本:
#!/bin/bash
set -e
waitFile="$1"
shift
cmd="$@"
until test -e $waitFile
do
>&2 echo "Waiting for file [$waitFile]."
sleep 1
done
>&2 echo "Found file [$waitFile]."
exec $cmd
Run Code Online (Sandbox Code Playgroud)
Docker Compose调用wait-for-file.sh作为从tomcat:8-jre8以下位置派生的轻微自定义容器的入口点:
platinum-oms:
image: opes/platinum-oms
ports:
- "8080:8080"
volumes_from:
- liquibase
links:
- postgres:postgres
- activemq:activemq
depends_on:
- liquibase
- activemq
entrypoint: /wait-for-file.sh /var/run/liquibase/done …Run Code Online (Sandbox Code Playgroud) 您建议使用哪些日志库作为Log4j的替代品?这些库是否适用于Spring和Hibernate?它们与Slf4j或Jakarta Commons Logging兼容吗?
当取消搁置在软件仓库中的文件时,如何指示Perforce将更改合并到工作区中的现有,打开和修改的文件中?Perforce似乎为用户提供的唯一选项是覆盖或还原工作区中的现有文件,但这不允许,例如,从多个更改列表中取消搁置并将更改集成到同一文件中.有没有解决这个限制的方法?
我weblogic-application.xml在哪里放入Maven 2项目,以便Maven将其放入META_INF目标EAR工件中?
我想试试Kubernetes的钩子,但我没有找到任何一个例子我应该怎么做.据我所知,通过这个钩子,我可以在新创建的容器中运行bash脚本,然后再终止它们.
我发现只是一个简短的文档,说这是可能的,但就是这样.
有人有一个例子或有用的信息吗?
提前致谢.
可以在Kubernetes ConfigMap中存储二进制文件,然后从安装此ConfigMap的卷中读取相同的内容吗?例如,如果目录/etc/mycompany/myapp/config包含二进制文件keystore.jks,则会
kubectl create configmap myapp-config --from-file=/etc/mycompany/myapp/config
Run Code Online (Sandbox Code Playgroud)
keystore.jks在ConfigMap myapp-config中包含文件,以后可以映射到卷,挂载到容器中,并作为二进制文件读取?
例如,假设下面的吊舱规范,应该keystore.jks是提供给myapp在/etc/mycompany/myapp/config/keystore.jks?
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: mycompany/myapp
volumeMounts:
- name: myapp-config
mountPath: /etc/mycompany/myapp/config
volumes:
- name: myapp-config
configMap:
name: myapp-config
Run Code Online (Sandbox Code Playgroud)
Kubernetes版本详细信息:
derek@derek-HP-EliteOne-800-G1-AiO:~/Documents/platinum/fix/brvm$ kubectl version
Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6", GitCommit:"ae4550cc9c89a593bcda6678df201db1b208133b", GitTreeState:"clean", BuildDate:"2016-08-26T18:13:23Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6+coreos.0", GitCommit:"f6f0055b8e503cbe5fb7b6f1a2ee37d0f160c1cd", GitTreeState:"clean", BuildDate:"2016-08-29T17:01:01Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)