小编Hai*_*jin的帖子

使用Boxfuse将Play框架应用程序部署到Amazon AWS时出现"host not allowed"错误

我正在尝试将使用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)

scala amazon-web-services playframework cloudcaptain

12
推荐指数
2
解决办法
9690
查看次数

如何从 Angular 的 PrimeNG 库中为 AutoComplete 组件设置焦点

我正在尝试在 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() 函数执行没有错误。但是,焦点未设置在自动完成元素上。

我哪里出错了有什么建议吗?先感谢您。

html typescript primeng angular

6
推荐指数
1
解决办法
5710
查看次数

Play框架中的响应和结果如何相关?

我正在学习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个地方?

如果没有,结果是否包括响应数据,我还没有发现?

java playframework playframework-2.0

5
推荐指数
1
解决办法
895
查看次数

错误对象属性不能通过for循环迭代

我经常使用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)

我不确定发生了什么.我试过谷歌,但还没有找到答案.有人可以给我一个解释吗?

javascript

4
推荐指数
1
解决办法
137
查看次数