Javadoc说String工具Comparable<String>
但是,以下代码返回false:
String.class.isAssignableFrom(Comparable.class)
Run Code Online (Sandbox Code Playgroud)
如何检查某个类是否实现了给定的接口?
我已经在spring boot embeded tomcat server中将keep alive timeout设置为30秒.所以我在Application.java中使用下面的,
@Bean
public EmbeddedServletContainerFactory getEmbeddedServletContainerFactory() {
TomcatEmbeddedServletContainerFactory containerFactory = new TomcatEmbeddedServletContainerFactory();
containerFactory
.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
((AbstractProtocol) connector.getProtocolHandler())
.setKeepAliveTimeout(30000);
}
});
return containerFactory;
}
Run Code Online (Sandbox Code Playgroud)
然后我从我的休息控制器睡了40秒的请求线程.但是当我通过邮递员发出请求时,它成功返回HTTP状态代码200,而不应该返回网关超时错误.
我尝试setConnectionTimeout和setKeepAliveTimeout,它不起作用.
我在这里失踪了什么?
编辑问题:我最初的问题
让我解释一下我的原始问题,这个问题引导我提出上述问题.
好吧,我有一个很长的民意调查过程,通常运行超过5分钟.
那么当我为longpoll调用Rest API时会发生什么,在2.2分钟后我在浏览器中得到504 http错误.
我正在使用AWS环境,其中我有一个安装在AWS EC2实例中的ELB和HAProxy.
根据AWS doc,它表示ELB的默认空闲连接超时为60秒.所以我把它增加到最多30分钟.
而且它说,
如果您使用HTTP和HTTPS侦听器,我们建议您为EC2实例启用keep-alive选项.您可以在Web服务器设置或EC2实例的内核设置中启用keep-alive.
因此,将上面的代码片段中的嵌入式tomcat保持活动超时增加到30.2分钟
所以现在我希望我的长轮询请求能够完成,而不会出现504错误.但是我仍然在浏览器中出现504错误?
参考:AWS开发指南
我有两个用 Spring Boot 编写的项目,并且有单独的端口号。
server.port: 23100
server.port: 23101
Run Code Online (Sandbox Code Playgroud)
现在,我想将两个项目部署到一台服务器上并分片相同的端口80,我应该如何支持这种情况?
我知道它可以使用 Apache Http Server 来支持 PHP 等,Spring Boot 如何做到这一点?
感谢@HeadBangingSloth给出了这个解决方案,总体思路是根据域名将80端口重定向到本地端口号。
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName www.app1.com
ServerAlias app1.com
ProxyPass / http://localhost:23100/
ProxyPassReverse / http://localhost:23100/
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName www.app2.com
ServerAlias app2.com
ProxyPass / http://localhost:23101/
ProxyPassReverse / http://localhost:23101/
</VirtualHost>
Spring Framework中是否有任何方法可以将字符串转换为其URL表示形式?例如从.Majstrovstvá v ?adovom hokeji到majstrovstva-v-ladovom-hokeji.
我正在学习Scala并编写了Email类似于以下内容的类:
class Email(emailConfigName: String) {
private val emailConfig = ConfigFactory.load(emailConfigName) getConfig ("email")
def notifySupportForTenant(symbolicName: String) {
val emailMessage: Message = constructEmailMessage(symbolicName)
Transport.send(emailMessage)
}
def constructEmailMessage(symbolicName: String): Message = {
val message = createMessage(emailConfig getString ("shn.mail.smtp.host"))
message setFrom (new InternetAddress(emailConfig getString ("shn.mail.from")))
// todo: should come from API (sent by client)
message setSentDate (new Date())
message setSubject (emailConfig getString ("shn.mail.subject") replace("TENANT_ID", symbolicName))
message setContent(emailConfig getString ("shn.mail.body"), "text/html")
message.setRecipients(Message.RecipientType.TO, getMessageRecipients(emailConfig getString ("shn.mail.recipient")))
message
}
private def createMessage(smtpHost: String): Message = …Run Code Online (Sandbox Code Playgroud) java ×4
spring ×2
spring-mvc ×2
unit-testing ×2
apache ×1
junit ×1
pitest ×1
reflection ×1
scala ×1
scalatest ×1
spring-boot ×1
tomcat ×1