小编Sou*_*nta的帖子

Maven for Java和Scala开发的替代方案

我一直在为我的Java(现在的Scala)项目使用Maven一段时间.最近,我看到一些关于Maven问题的讨论(例子).就个人而言,我很高兴直到现在.我已经使用了sbt一点点Scala,我认为它运作良好.

同样,我的观点并不是说哪个系统更好,而是要说明存在的其他替代方案以及真正的开发人员如何将它们用于Java和Scala项目.

java scala maven

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

使用ansible在远程主机上启动长时间运行的进程

我是Ansible的新手.我正在尝试使用非常简单的Ansible Playbook在远程主机上启动进程.

这是我的剧本的样子

-
  hosts: somehost
  gather_facts: no
  user:  ubuntu  
  tasks:
    - name: change directory and run jetty server
      shell: cd /home/ubuntu/code; nohup ./run.sh    
      async: 45
Run Code Online (Sandbox Code Playgroud)

run.sh使用一些参数调用java服务器进程.我的理解是,即使在剧本完成之后,在远程机器上使用异步我的进程也会继续运行(这应该在大约45秒后发生.)

但是,只要我的playbook退出远程主机终端上的run.sh启动的进程.

任何人都可以解释这里发生了什么,我在这里错过了什么.

谢谢.

ansible

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

为Play 2.1.1实现写入

我是Play(和Scala)的新手.我正在尝试编写一个调用一些Java代码的简单Play应用程序.

我想将a转换scala.collection.mutable.Map[String,Array[String]]为JSON字符串.但这显然不起作用.

基于此,我假设我要实现写入.我当前的代码(显然不正确)如下所示:

implicit val myWrites = new Writes[scala.collection.mutable.Map[String,Array[String]]] {

def writes(res: scala.collection.mutable.Map[String,Array[String]]) = {

  val x  = res.foreach { kv => Json.obj(
      kv._1 -> ( kv._2.reduceLeft(_ + "," + _).mkString)

    ) }

    Json.toJson(x)

  }


}
Run Code Online (Sandbox Code Playgroud)

任何有助于我取得进步的指针都将受到赞赏.

scala playframework playframework-2.0

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

从Scala中的Seq of Map创建所有键的并集的功能方法

我有一个地图序列

 Seq[Map[String,Int]] 
Run Code Online (Sandbox Code Playgroud)

我想创建一个Seq/Set,它是每个Map中所有键的联合.

unionallkeys = ( "a1", "a2", "a3", "b1", "b2", "b3", "c1", "c2", "c3" ) 
Run Code Online (Sandbox Code Playgroud)

在下面的例子中.

scala> val a = Map( ("a1", 1), ("a2", 2), ("a3", 3) ) 
a: scala.collection.immutable.Map[String,Int] = Map(a1 -> 1, a2 -> 2, a3 -> 3)

scala> val b = Map( ("b1", 1), ("b2", 2), ("b3", 3) ) 
b: scala.collection.immutable.Map[String,Int] = Map(b1 -> 1, b2 -> 2, b3 -> 3)

scala> val c = Map( ("c1", 1), ("c2", 2), ("c3", 3) ) 
c: scala.collection.immutable.Map[String,Int] = …
Run Code Online (Sandbox Code Playgroud)

collections scala

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

更改正在运行的Actor系统的日志级别?

我resources/application.conf看起来如下.

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "DEBUG"
}
Run Code Online (Sandbox Code Playgroud)

我正在创建一个胖罐,使用$sbt assembly它包含这个application.conf并部署这个jar来运行我的actor.现在我可以在运行时更改我的程序的日志级别(从DEBUG到INFO)而不需要简化我的actor系统吗?如果有,怎么样?

我的logback.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.out</target>
        <encoder>
            <pattern>%X{akkaTimestamp} %-5level[%thread] %logger{0} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/myjobs.log</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>logs/myjobs.%i.log.zip</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>5</maxIndex>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>100MB</maxFileSize>
        </triggeringPolicy>

        <encoder>
            <pattern>%date{yyyy-MM-dd} %X{akkaTimestamp} %-5level[%thread] %logger{1} - %msg%n</pattern>
        </encoder>
    </appender>


    <logger name="akka" level="INFO" />

    <root level="DEBUG">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

</configuration> 
Run Code Online (Sandbox Code Playgroud)

logging scala logback akka

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

在Scala中从Future获取数据

我有一个Future[List[Person]][1],我想得到List[Person]它.我该怎么做 ?

import scala.concurrent.Future
val futPersons : Future[List[Person]] = .... 
Run Code Online (Sandbox Code Playgroud)

scala future

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

在reactivemongo中找不到BSON Writer的隐含值

我有一个非常简单的案例类,它是更大案例类的一部分.

case class PublisherStatus(status: String)
case class Publisher(id: Option[BSONObjectID], name: String, status: PublisherStatus, keywords: List[String], updatedAt: Option[DateTime], outputChannelIP: String, outputChannelName: String)
Run Code Online (Sandbox Code Playgroud)

我已经为它定义了BSON Reader和Writer,如下所示.

  implicit object StatusBSONReader extends BSONDocumentReader[PublisherStatus] {
    def read(doc: BSONDocument): PublisherStatus =
      PublisherStatus(
        doc.getAs[String]("status").get
      )
  }

  implicit object StatusBSONWriter extends BSONDocumentWriter[PublisherStatus] {
    def write(status: PublisherStatus): BSONDocument =
      BSONDocument(
        "status" -> status.status)
  }
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行以下操作时,我收到编译错误.

  def updateState(id: String, s: String) {
    import models.PublisherBSONWriter._
    implicit val statusWrites = Json.writes[PublisherStatus]
    val objectId = new BSONObjectID(id)
    val status = PublisherStatus(s)
    val modifier = …
Run Code Online (Sandbox Code Playgroud)

scala implicit reactivemongo

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

Android 2.1 GoogleMaps ItemizedOverlay ConcurrentModificationException

我无法弄清楚它的起源ConcurrentModificationException.在我的activity呼唤中 updateMapOverlay().我也在updateMapOverlay()另一个TimerTask定期调用的Thread(a )中调用.updateMapOverlay()从两个线程调用时,我正在使用适当的锁.这个问题是由于我updateMapOverlay从非UI线程(即TimerTask)中调用而引起的.还有其他人遇到过类似的问题吗?

private void updateMapOverlay() {

    this.itemizedOverlay.refreshItems(createOverlayItemsList());
    List<Overlay> overlays = mapView.getOverlays();
    overlays.clear();
    overlays.add(cotItemizedOverlay);
            this.mapview.invalidate();

}
Run Code Online (Sandbox Code Playgroud)

ConcurrentModificationException

谢谢.

例外:

W/dalvikvm(10641): threadid=3: thread exiting with uncaught exception (group=0x4001b180)
E/AndroidRuntime(10641): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(10641): java.util.ConcurrentModificationException
E/AndroidRuntime(10641):    at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:64)
E/AndroidRuntime(10641):    at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:41)
E/AndroidRuntime(10641):    at com.google.android.maps.MapView.onDraw(MapView.java:494)
E/AndroidRuntime(10641):    at android.view.View.draw(View.java:6535)
E/AndroidRuntime(10641):    at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
E/AndroidRuntime(10641):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
E/AndroidRuntime(10641):    at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
E/AndroidRuntime(10641):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
E/AndroidRuntime(10641): …
Run Code Online (Sandbox Code Playgroud)

concurrency android google-maps itemizedoverlay android-mapview

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

Apache Camel和Drools Fusion集成

有没有人尝试将Apache Camel与Drools Fusion或Drools集成.

以下是我的用例.

  • 使用REST从外部服务获取数据.
  • 过滤数据(使用Drools中定义的规则.)
  • 来自外部服务的数据也可以是信息流(例如,Tweeter馈送,用户的实时位置)

任何帮助或指示将不胜感激.

谢谢.

rest filtering drools apache-camel drools-fusion

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

在Scala中将JSON以一种格式转换为另一种格式

我正在寻找可以帮助我在Scala中将JSON(具有嵌套结构)从一种格式转换为另一种格式的建议或库.

我看到有一些基于JavaScript和Java的解决方案.Scala中的任何东西?

json scala converter

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

如何在scala中使用fold/reduce来实现这一点?

我上了课

case class PlaceHolder(time: Long, a: Int, b: Int) 
Run Code Online (Sandbox Code Playgroud)

我有一个PlaceHolder对象列表,我想创建一个对象,其中包含字段a和所有值的总和b.我不在乎time.我相信它可以通过折叠/缩小操作来完成,但无法用两个字段来计算它是如何做到的.

scala> val range = 1 to 10
range: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> val placeholders = for{ i <- range} yield PlaceHolder(i,i,i) 
placeholders: scala.collection.immutable.IndexedSeq[PlaceHolder] = Vector(PlaceHolder(1,1,1), PlaceHolder(2,2,2), PlaceHolder(3,3,3), PlaceHolder(4,4,4), PlaceHolder(5,5,5), PlaceHolder(6,6,6), PlaceHolder(7,7,7), PlaceHolder(8,8,8), PlaceHolder(9,9,9), PlaceHolder(10,10,10))
Run Code Online (Sandbox Code Playgroud)

reduce scala fold

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