我正在尝试将使用Scala中的Play Framework编写的简单Web应用程序部署到Amazon Web服务.
Web应用程序在本地计算机的开发模式和生产模式下运行正常,我已将其默认端口更改为80.
我按照建议使用Boxfuse部署到AWS.
我先运行" sbt dist "然后" boxfuse run -env = prod "
事情进展顺利.图像融合并推送到AWS.AMI已创建.实例已启动,我的应用程序正在运行.
i-0f696ff22df4a2b71 => 2017-07-13 01:28:23.940 [info] play.api.Play - 应用程序启动(Prod)
然后出现错误消息:
警告:Healthcheck(http://35.156.38.90/)返回400而不是200.重试接下来的300秒......
i-0f696ff22df4a2b71 => 2017-07-13 01:28:24.977 [info] pcsAkkaHttpServer - 在/0.0.0.0:80上收听HTTP
i-0f696ff22df4a2b71 => 2017-07-13 01:28:25.512 [warn] pfhAllowedHostsFilter - 不允许主持人:35.156.38.90
3分钟后反复尝试终止实例.它给出了一个警告:
确保您的应用程序使用HTTP 200 at/on 80端口进行响应
但我确保应用程序在本地机器上响应,我尝试了Windows和Ubuntu,一切运行良好.
此外,在本地计算机上运行"boxfuse run",我可以使用" http:// localhost " 连接到它,但仍然有错误.
希望有经验的人能给我一些建议.提前致谢.
ps:不确定是否相关,我将这些设置添加到application.conf中
http {
address = 0.0.0.0
port = 80
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Dialog 元素中使用 AutoCompete 组件。当 Diaglog 打开时,我希望焦点转到 AutoComplement 元素。
我还没有找到这方面的确切教程。
我的效果是基于这个stackoverflow链接: How to use Angular4 to set focus by element id
这个 Github 问题:https : //github.com/primefaces/primeng/issues/2029 虽然我不明白像 onAfterShow 事件这样的部分,但该线程中的一些人尝试过但不起作用。
我的代码是这样的(简化):
成分
<p-dialog [(visible)]="this.display" modal="true"(onShow)="this.onAfterShow($event)">
<p-autoComplete #autoCompleteObject>
</p-autoComplete>
<some-other-components>
<p-dialog>
Run Code Online (Sandbox Code Playgroud)
打字稿:
@ViewChild('autoCompleteObject') private autoCompleteObject: AutoComplete ;
onAfterShow(event){ this.autoCompleteObject.domHandler.findSingle(this.autoCompleteObject.el.nativeElement, 'input').focus();
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
@ViewChild('autoCompleteObject', {read: ElementRef}) private autoCompleteObject: ElementRef ;
onAfterShow(event){
console.log("diaglog shows");
this.autoCompleteObject.nativeElement.focus();
}
Run Code Online (Sandbox Code Playgroud)
当diaglog 打开时, onAfterShow() 函数执行没有错误。但是,焦点未设置在自动完成元素上。
我哪里出错了有什么建议吗?先感谢您。
我正在学习Java中的Play Framework.
我无法清楚地理解响应和结果之间的区别.我的意思是,实际发回的是什么,结果还是两者兼而有之?响应是结果的一部分吗?
我一直在试着查看源代码.响应包含Cookie和Map作为标题.结果包含Cookie和ResponseHeader,以及更多内容,如正文和会话.所以有一些重叠.
令我困惑的是这样的代码:
public Result index() {
response().setHeader(CACHE_CONTROL, "max-age=3600");
response().setHeader(ETAG, "xxx");
return ok("<h1>Hello World!</h1>").as("text/html");
}
Run Code Online (Sandbox Code Playgroud)
我将源代码中调用的ok()函数跟踪到Result的构造函数,并且它似乎没有使用response()函数返回的Context中的Response对象中的任何数据.
所以我的问题是:
因此,在回复之前,响应中的cookie和标题最终将与框架中的Cookie和标题结合使用?
如果是这样,制作2个课而不是一个课的理由是什么,并将饼干/标题放在2个地方?
如果没有,结果是否包括响应数据,我还没有发现?
我经常使用for循环来迭代JavaScript对象,直到今天才发现问题.当我试图知道Error对象具有什么属性时,它让我感到惊讶.
var e= new Error("testing");
for(var key in e)
console.log(e[key]);
Run Code Online (Sandbox Code Playgroud)
我什么都没有,没有输出.但当然,以下代码
console.log(e.name);
console.log(e.message);
Run Code Online (Sandbox Code Playgroud)
给出预期的输出:
"Error"
"testing"
Run Code Online (Sandbox Code Playgroud)
我不确定发生了什么.我试过谷歌,但还没有找到答案.有人可以给我一个解释吗?