我正在使用scala,spray和akka来完成我的一个项目.在Intellij,它工作正常.当我构建项目并尝试在命令行中运行它时,我收到以下错误.
Caused by: com.typesafe.config.ConfigException$Missing: No configuration setting
found for key 'akka'
at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206)
at akka.actor.ActorSystem$Settings.(ActorSystem.scala:168)
at akka.actor.ActorSystemImpl.(ActorSystem.scala:504)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:141)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:108)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:99)
请帮我解决这个问题
我在这个案子上被困了一会儿.
我有一个webview Android 4.4.3
,我有一个float32array
包含二进制数据的webapp .我想array
通过绑定的函数将其传递给Java Android JavascriptInterface
.然而,这似乎是在Java中,我只能通过原始的类型,如String
,int
等...
有没有办法给Java这个arrayBuffer?
谢谢 !
我的等参数的列表List(1,2,3,"abc","c")
和一组功能这验证了本数据列表中的一样isNumberEven
,isAValidString
等
目前,我取列表的每个值并应用适当的函数来验证数据,如isNumberEven(params(0))
.这导致了大而乱的代码,这在思考中是必不可少的.
我期待在Scala中做这样的事情应该是可能的 -
List(1,2,3,"abc","c").zip(List(fuctions)).foreach{ x => x._2(x._1)}
Run Code Online (Sandbox Code Playgroud)
但是,这无法给出类型不匹配的运行时异常:
错误:类型不匹配; found:需要x._1.type(底层类型为Any):Int with String
我在Function traits上尝试了模式匹配,但由于类型擦除而失败.
任何指针将被理解,如何解决这个问题.
我需要if-else
在我的加特林检查中实施一个条件。
例如:- 下面,我可能将 JSON 响应中的 items 数组设为空。所以我需要检查 items 是否为空。我需要执行另一组动作。你能告诉我如何实现这一目标吗?
.check(
jsonPath("$..items[(@.length-1)].id").saveAs("MyAlbumId")
)
Run Code Online (Sandbox Code Playgroud) 我正在使用slick
play2.我在数据库中有多个由数据库管理的字段.我不想创建或更新它们,但是我想在读取值时获取它们.
例如,假设我有
case class MappedDummyTable(id: Int, .. 20 other fields, modified_time: Optional[Timestamp])
哪个映射Dummy
在数据库中.modified_time
由数据库管理.
问题是在insert
or 期间update
,我创建了一个MappedDummyTable
没有修改时间属性的实例,并将其传递给slick进行创建/更新
TableQuery[MappedDummyTable].insert(instanceOfMappedDummyTable)
为此,Slick创建查询为
Insert INTO MappedDummyTable(id,....,modified_time) Values(1,....,null)
并将modified_time更新为NULL,这是我不想要的.我希望Slick在更新和创建时忽略这些字段.
为了更新,我能做到
TableQuery[MappedDummyTable].map(fieldsToBeUpdated).update(values)
但这导致方法中的20个奇数字段map
看起来很难看.
有没有更好的方法?
更新:
我发现的最佳解决方案是使用多个投影.我创建了一个用于获取值的投影,另一个用于更新和插入数据
我有一个用户表,我希望有多个投影.例如,我可以拥有类似的东西
class Users(tag: Tag) extends Table [User] (tag, "user") {
def * = (id.?, emailId, firstName, lastName, gender) <> (User.tupled, User.unapply)
def allDetails = (id.?, emailId, firstName, lastName, gender, createdTime, modifiedTime)
...
}
我在谷歌搜索但找不到任何东西.有人可以告诉我如何使用allDetails?
我想做
object Users {
val users = TableQuery[Users]
def getAllDetails = ??? // How can I use allDetails here
}
我有一个案例类Ab.
case class Ab(
startTime: java.sql.Timestamp)
Run Code Online (Sandbox Code Playgroud)
我得到了一个JSON表示.
{"startTime":"2014-12-12 11:12:12"}
Run Code Online (Sandbox Code Playgroud)
Json4s显然不支持Timestamp,所以我创建了一个自定义序列化器,如:
case object TimestampSerializer extends CustomSerializer[Timestamp](format => (
{
case JString(s) => {
Timestamp.valueOf(s)
}
case JNull => null
},
{
case tm: Timestamp => JString(tm.toString())
}))
但是,当我尝试提取值时,我得到一个映射异常.
我的代码
org.json4s.jackson.JsonMethods.parse(""" {"startTime":"2014-12-12 11:12:12"} """).toString
//JObject(List((startTime,JString(2014-12-12 11:12:12))))
org.json4s.jackson.JsonMethods.parse(""" {"startTime":"2014-12-12 11:12:12"} """).extract[Ab]
//MappingException: No usable value for startTime
//Invalid date '2014-12-12 11:12:12'
编写像这样的序列化工具:
case object TimestampSerializer extends CustomSerializer[Timestamp](format => (
{
case JInt(s) => {
new Timestamp(s)
}
case JNull => null
},
{ …
Run Code Online (Sandbox Code Playgroud) 我试图插入一些数据,apple_reportDB
但我得到错误Too many arguments for method in the insert query
import scala.slick.driver.MysqlDriver.simple._
case class AppleReport(quantity:String,price:String,sale_amount:String)
//tables
class Suppliers(tag: Tag)
extends Table[AppleReport](tag, "apple_report") {
def quantity=column[String]("quantity")
def price=column[String]("price")
def sale_amount=column[String]("sale_amount")
def * =(quantity,price,sale_amount) <> (AffiliateReportFields.tupled,AffiliateReportFields.unapply)
}
//declaring interface
val suppliers: TableQuery[Suppliers] = TableQuery[Suppliers]
val db=Database.forURL("jdbc:mysql://localhost:3306/apple_reportDB","root","",null, driver="com.mysql.jdbc.Driver")
db.withSession { implicit session =>
//create table
suppliers.ddl.create
//Insert data
suppliers += ("apple","cow","cat")
}
Run Code Online (Sandbox Code Playgroud)