小编dro*_*sun的帖子

将Optional <Integer>转换为Optional <Long>的好方法

我试图找到一种干净,代码高效的转换Optional<Integer>方式Optional<Long>.我正在使用Guava在Java 7中工作.

所以在代码中的一个地方我创建了一个可选的整数

    Optional<Integer> optionalInt = Optional.fromNullable(someInt);
Run Code Online (Sandbox Code Playgroud)

在另一个领域,我需要它作为一个可选的长.我能想到的最好的事情是:

    Optional<Long> optionalLong = optionalInt.transform(new Function<Integer, Long>() {
        @Override
        public Long apply(Integer inputInt) {
            if (inputInt != null)
                return inputInt.longValue();
            else
                return null;
        }
    });
Run Code Online (Sandbox Code Playgroud)

但这很麻烦,特别是如果你考虑在我使用原始类型时转换类型是多么容易.

有什么好主意吗?

java optional guava java-7

21
推荐指数
1
解决办法
1万
查看次数

如何配置react-router与nginx/cherrypy和我当前的reactjs应用程序

我有一个工作的网络应用程序由nginx提供服务,后端为cherrypy,前端为ReactJS.

应用程序增长了所以我想使用react-router来快速访问带有URL的页面.例如,我希望my.domain.name/user将获取管理用户的应用程序中的部分.

我的单个index.html包含js包,如下所示: <script src="/js/bundle.js"></script>

到目前为止,我的应用程序通过渲染AppMain开始.现在,我创建了一个NoMatch类,我将它们放入react-router中,如下所示:

ReactDOM.render((
    <Router history={browserHistory}>
        <Route path="/" component={AppMain}>
            <Route path="*" component={NoMatch}/>
        </Route>
    </Router>
), document.getElementById('main-central'));
Run Code Online (Sandbox Code Playgroud)

尝试这个时,它工作得很好.使用http://my.domain.name像以前一样给了我这个应用程序.但是thoeritcally现在尝试http://my.domain.name/whatever应该渲染任何NoMatch渲染.但相反,我得到了nginx 404页面.

所以我认为需要一个nginx端配置,但可能不仅仅是(这就是我将整个故事带到上面的原因).

Nginx配置(http部分)如下所示:

upstream app_servers {
    server 127.0.0.1:9988;
}

# Configuration for Nginx
server {

    location / {
        root /var/www;
        index index.html;
    }

    # Proxy connections to the application servers
    # app_servers
    location /api {
        proxy_pass         http://app_servers/api;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,cherrypy正在获得所有/ api/*路径.

我在/ …

nginx cherrypy reactjs react-router

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

从AWS Lambda发送https到AWS Elastic beantalk服务器

我正在努力使AWS lambda能够将HTTPS POST请求发送到AWS Elastic beantalk服务。弹性beantalk提供Web和Web服务,并且运行良好。lambda正在使用AWS elasticache进行一些计算(效果很好),然后决定是否将HTTPS POST发送到beantalk URL。

Lambda用编写node.js。POST尝试后大约2分钟,我收到以下超时消息:

[Error: connect ETIMEDOUT X.Y.Z.W:443] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: 'X.Y.Z.W', port: 443 
Run Code Online (Sandbox Code Playgroud)

我在弹性bean nginx访问日志中没有看到请求的指示。

因此,我的理解是安全组设置不正确。

我排除了使用弹性beantalk阻止此类连接的选项-lambda使用的URL具有外部域名,可以从任何浏览器使用该URL,并且可以正常工作。

因此,我得出的结论是,lambda安全性阻止了这种连接。因此-我完全打开了lambda安全组,可以从任何地方进行“所有流量”操作-我仍然遇到此问题。

有任何想法吗?

amazon-elastic-beanstalk aws-lambda aws-security-group

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