小编jcm*_*jcm的帖子

Scala Play 2.2应用程序中的CORS过滤器

我想在Play 2.2.x应用程序中实现一个CORS过滤器.到目前为止,我有以下内容:

package filters

import play.api.mvc._
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.GlobalSettings

class CorsFilter extends EssentialFilter {
  def apply(next: EssentialAction) = new EssentialAction {
    def apply(requestHeader: RequestHeader) = {
      next(requestHeader).map { result =>
        result.withHeaders("Access-Control-Allow-Origin" -> "*",
          "Access-Control-Expose-Headers" -> "WWW-Authenticate, Server-Authorization",
          "Access-Control-Allow-Methods" -> "POST, GET, OPTIONS, PUT, DELETE",
          "Access-Control-Allow-Headers" -> "x-requested-with,content-type,Cache-Control,Pragma,Date")
      }
    }
  }
}

object Global extends WithFilters(new CorsFilter) with GlobalSettings
Run Code Online (Sandbox Code Playgroud)

以及预检选项操作:

  def preflight(all: String) = Action {
    Ok("").withHeaders("Access-Control-Allow-Origin" -> "*",
      "Allow" -> "*",
      "Access-Control-Allow-Methods" -> "POST, GET, PUT, DELETE, OPTIONS",
      "Access-Control-Allow-Headers" …
Run Code Online (Sandbox Code Playgroud)

scala cors playframework-2.0

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

如何在 shell 脚本中等待文件写入完成?

我有一个名为 的 shell 脚本parent.sh,它执行一些操作,然后调用另一个 shell 脚本child.sh,该脚本执行一些处理并将一些输出写入文件output.txt

我希望parent.sh脚本仅在写入该文件后继续处理。output.txt我如何知道文件已完成写入?

编辑:添加问题的答案: child.sh 在退出之前是否完成了对文件的写入?是的

parent.sh是在前台运行child.sh还是在后台运行? 我不确定 - 它是从 withing 中调用的,parent.sh如下所示:./child.sh "$param1" "$param2"

bash shell

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

Scala中的Ad hoc多态性

我无法理解如何创建以下代码的实现:

Ad-hoc polymorphism
The third approach in Scala is to provide an implicit conversion or implicit
parameters for the trait.

scala> trait Plus[A] {
def plus(a1: A, a2: A): A
}
defined trait Plus

scala> def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2)
plus: [A](a1: A, a2: A)(implicit evidence$1: Plus[A])A
Run Code Online (Sandbox Code Playgroud)

如何创建具体实现,例如添加字符串或整数?

scala

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

将元素移动到Scala中列表的前面

我想知道是否有办法在列表中找到一个元素并将其移动到Scala列表的前面?有没有什么简单的方法可以做到这一点,除了迭代列表,然后删除该元素,然后将其预先挂起到列表的前面?

scala data-structures scala-collections

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

TIME_WAIT连接太多,得到"无法分配请求的地址"

我有一个小型Web应用程序,它打开TCP套接字连接,发出命令,读取响应,然后关闭对特定REST端点的每个请求的连接.

我已经开始使用Apache JMeter对端点进行负载测试,并注意到在运行一段时间后,我开始看到"无法分配请求的地址"之类的错误,打开此连接的代码是:

def lookup(word: String): Option[String] = {
 try {
  val socket = new Socket(InetAddress.getByName("localhost"), 2222)
  val out = new PrintStream(socket.getOutputStream)
  val reader = new BufferedReader(new InputStreamReader(socket.getInputStream, "utf8"))
  out.println("lookup " + word)
  out.flush()

  var curr = reader.readLine()
  var response = ""
  while (!curr.contains("SUCC") && !curr.contains("FAIL")) {
    response += curr + "\n"
    curr = reader.readLine()
  }
  socket.close()
  curr match {
    case code if code.contains(SUCCESS_CODE) => {
      Some(response)
    }
    case _ => None
  }
 }
 catch {
   case e: Exception => …
Run Code Online (Sandbox Code Playgroud)

sockets linux tcp scala scalability

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

我的 docker 容器内的 Fallocate 失败

我正在尝试在 Linux Ubuntu 14.10 Docker 容器中运行一个脚本,该容器使用fallocate如下命令:

fallocate -l 10M 10meg
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此脚本时,甚至当我通过 ssh 连接到容器时运行命令时,也会收到以下错误:

root@~$>> fallocate -l 10M 10meg
fallocate: fallocate failed: Operation not supported
Run Code Online (Sandbox Code Playgroud)

知道为什么这在我的容器内失败吗?

linux docker

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

如何选择集合中最大的元素之一

我有一个元组列表,我想找到具有最大值的元组x.在有多个最大值的情况下x,我想随机选择一个.我无法弄清楚如何实现这种随机选择功能.以下是我到目前为止的代码:

public void testSelectRandomFromLargestVals() {
    List<Tuple<Integer, String>> list = new ArrayList<>();
    list.add(new Tuple<>(5, "five-1"));
    list.add(new Tuple<>(2, "two"));
    list.add(new Tuple<>(3, "three"));
    list.add(new Tuple<>(5, "five-2"));
    list.add(new Tuple<>(5, "five-3"));

    Optional<Tuple<Integer, String>> largestTuple = list.stream().max((t1, t2) -> Integer.compare(t1.x, t2.x));
    System.out.println("Largest tuple is: " + largestTuple.get().x + " value is: " + largestTuple.get().y);
}

public class Tuple<X, Y> {
    public final X x;
    public final Y y;
    public Tuple(X x, Y y) {
        this.x = x;
        this.y = y;
    }
    @Override …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

4
推荐指数
3
解决办法
303
查看次数

如何管理多个数据库上的事务

我有一个网络应用程序,它接收将订单保存在数据库中的请求。我想写入 2 个不同的数据库 - 一个 Cassandra 实例和一个 PostgreSQL 实例。我使用纯 Java 和 JDBC(带有 apache DBUtis),前面有一个轻量级 Web 应用程序库。

我不确定的是如何跨两个数据库实现事务性,即如果对其中一个数据库的写入失败,则回滚另一个写入并将错误消息放入错误日志中。

Java中有什么机制可以实现这一点吗?我知道两阶段提交这样的事情,这就是我在这里要寻找的吗?还有其他选择吗?

java postgresql distributed-transactions

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

我应该使用&nbsp; 或填充以分隔水平列表项

我想在一些水平布局的列表项之间放一些空格,我应该使用&nbsp;还是padding-left来分隔它们?

&nbsp 例:

<ul class="menu">
    <li class="menu_item">Option 1&nbsp;</li>
    <li class="menu_item">Option 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

padding-left示例:

<ul class="menu">
    <li class="menu_item">Option 1</li>
    <li class="menu_item">Option 2</li>
</ul>
.menu li.menu_item { padding-left: 10px; }
Run Code Online (Sandbox Code Playgroud)

html css

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

更正新类型定义

我想知道为什么以下是Pair类型的正确实现.具体来说,为什么Pair b aPair a b呢?

newtype Pair b a = Pair { getPair :: (a,b) } 
Run Code Online (Sandbox Code Playgroud)

澄清,Pair a b不适用于以下内容:

instance Functor (Pair c) where  
fmap f (Pair (x,y)) = Pair (f x, y) 
Run Code Online (Sandbox Code Playgroud)

而且我不明白为什么.

除了下面的很多很棒的答案之外,我发现在ghci中做了以下有用的事情:

*Main> newtype Pair b a = Pair (a, b) deriving (Show, Eq)
*Main> :t Pair(True, "cat")
Pair(True, "cat") :: Pair [Char] Bool

*Main> newtype Pair a b = Pair (a, b) deriving (Show, Eq)
*Main> :t Pair(True, "cat")
Pair(True, …
Run Code Online (Sandbox Code Playgroud)

haskell

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