cert-manager有一个 kubernetes 集群,其中有一个服务的 nginx 入口,我正在尝试使用ACME设置 https 访问ClusterIssuer。
我对 cert-manager 遵循的步骤相当满意,但我目前正处于对 http 求解器提出挑战的阶段,cert-manager 在集群中配置了该解决器作为挑战过程的一部分。当我描述服务生成的挑战时,我发现其状态处于待处理状态:
Reason: Waiting for http-01 challenge propagation: failed to perform self check GET request 'http://www.example.com/.well-known/acme-challenge/nDWOHEMXgy70_wxi53ijEKjUHFlzg_UJJS-sv_ahGzg': Get "http://www.example.com/.well-known/acme-challenge/nDWOHEMXgy70_wxi53ijEKjUHFlzg_UJJS-sv_ahGzg": dial tcp xx.xx.xx.xxx:80: connect: connection timed out
Run Code Online (Sandbox Code Playgroud)
当我从 k8s 主机服务器调用求解器的 url 时:
curl -H "Host: www.example.com" http://192.168.1.11:31344/.well-known/acme-challenge/nDWOHEMXgy70_wxi53ijEKjUHFlzg_UJJS-sv_ahGzg
Run Code Online (Sandbox Code Playgroud)
我得到了 200 ok 回复。
注意:地址 192.168.1.11 是运行 httpsolver pod 的 k8s 节点的 IP。端口 31344 是 httpsolver pod 的 nodeIp 服务的内部端口。
我试图找出为什么挑战本身超时并且没有得到 200 回复。
我已经通过 4g(而不是 wifi)从我的手机测试了 http 解算器的 url,这样我得到 200 OK,这告诉我可以通过防火墙从外部访问 …
我使用最新的可用版本建立了一个新的Spring Boot + Spring Integration + Spring Integration Java DSL项目.项目构建正常但是,当我运行应用程序时,我得到:
Caused by: java.lang.NoSuchMethodError: org.springframework.integration.dsl.StandardIntegrationFlow.isRegisterComponents()Z
at org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor.processStandardIntegrationFlow(IntegrationFlowBeanPostProcessor.java:139) ~[spring-integration-java-dsl-1.2.3.RELEASE.jar:?]
at org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor.postProcessBeforeInitialization(IntegrationFlowBeanPostProcessor.java:100) ~[spring-integration-java-dsl-1.2.3.RELEASE.jar:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:423) ~[spring-beans-5.0.3.RELEASE.jar:5.0.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702) ~[spring-beans-5.0.3.RELEASE.jar:5.0.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583) ~[spring-beans-5.0.3.RELEASE.jar:5.0.3.RELEASE]
Run Code Online (Sandbox Code Playgroud)
目前使用的依赖项如下:
compile ("org.springframework.boot:spring-boot-starter:2.0.0.RC1") {
exclude group: "org.springframework.boot", module: "spring-boot-starter-logging"
}
compile "org.springframework.boot:spring-boot-starter-data-jpa:2.0.0.RC1"
compile "org.springframework.boot:spring-boot-starter-log4j2:2.0.0.RC1"
compile "org.springframework.integration:spring-integration-core:5.0.1.RELEASE"
compile "org.springframework.integration:spring-integration-http:5.0.1.RELEASE"
compile "org.springframework.integration:spring-integration-jms:5.0.1.RELEASE"
compile "org.springframework.integration:spring-integration-java-dsl:1.2.3.RELEASE"
Run Code Online (Sandbox Code Playgroud)
错误是由于jar版本的错误组合造成的吗?我不知道如何调试此错误.
我有以下字符串:
"location-string:location-string:location-C?:\string"
我想分成以下三个字符串:
location-string location-string location-C?:\string
使用String.split(正则表达式)时,正则表达式应该是什么?
基本上,我想分开冒号':'字符除了那些前面有'?'的字符 字符!
PM,提前谢谢.
我的项目使用 catalina.base 系统属性来获取与该属性的文件夹位置相关的资源。在 Eclipse 中工作时,我传递 -Dcatalina.base=。作为应用程序 Main 类的 VM 参数。
我的主类是这样实现的:
@ComponentScan
@EnableAutoConfiguration
public class Main {
private static final Logger logger = LogManager.getLogger();
public static void main(String[] args) {
if ( logger.isDebugEnabled() ) {
String debugCatalinaBase = System.getProperty("catalina.base");
// here catalinaBase is set to "." as expected.
logger.debug("catalinaBase: {}", debugCatalinaBase);
}
SpringApplication.run(Main.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
作为该项目的一部分,我有一个 ApplicationConfig 类,其实现如下:
@Configuration
public class ApplicationConfig {
private static final Logger logger = LogManager.getLogger();
@Value("${catalina.base}")
private String catalinaBase;
@Bean
public Properties jndiProperties() { …Run Code Online (Sandbox Code Playgroud) 以下Scala代码段的Java等价物是什么?
val codeLength = 8
val value: Long = 12345678
("0" * codeLength + value.toString).takeRight(codeLength)
Run Code Online (Sandbox Code Playgroud)
这是我特别感兴趣的第三行知道Java 8的等价物.