小编mik*_*dge的帖子

kafka QuickStart,advertised.host.name给出了kafka.common.LeaderNotAvailableException

我能够在一台Linux机器上获得一个简单的单节点Kafka(kafka_2.11-0.8.2.1)本地工作,但是当我尝试远程运行生产者时,我遇到了一些令人困惑的错误.

我正在关注http://kafka.apache.org/documentation.html#quickstart上的快速入门指南.我停止了kafka进程并删除了/ tmp中的所有zookeeper和karma文件.我在本地10.0.0.0/24网络NAT-ed上有一个外部IP地址,所以我修改server.properties告诉zookeeper如何广播我的外部地址,按照https://medium.com/@thedude_rog/running-kafka- in-a-hybrid-cloud-environment-17a8f3cfc284:

advertised.host.name=MY.EXTERNAL.IP
Run Code Online (Sandbox Code Playgroud)

然后我运行这个:

$ bin/zookeeper-server-start.sh config/zookeeper.properties
--> ...
$ export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" # small test server!
$ bin/kafka-server-start.sh config/server.properties
--> ...
Run Code Online (Sandbox Code Playgroud)

我为远程计算机上的生产者打开了防火墙,并创建了一个新主题并对其进行了验证:

$ bin/kafka-topics.sh --create --zookeeper MY.EXTERNAL.IP:2181 --replication-factor 1 --partitions 1 --topic test123
--> Created topic "test123".
$ bin/kafka-topics.sh --list --zookeeper MY.EXTERNAL.IP:2181
--> test123
Run Code Online (Sandbox Code Playgroud)

但是,我正在远程运行的生产者给了我错误:

$ bin/kafka-console-producer.sh --broker-list MY.EXTERNAL.IP:9092 --topic test123
--> [2015-06-16 14:41:19,757] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
My Test Message
--> [2015-06-16 14:42:43,347] WARN Error while fetching …
Run Code Online (Sandbox Code Playgroud)

apache-kafka

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

如何使用Slick 3 + Specs2回滚集成测试?

我想为运行光滑的服务编写一些集成测试,然后通过回滚事务清理postgresql数据库,但是我没有办法做到这一点.我知道我可以测试已经组合在一起的DBIO对象并将它们回滚,但是如果我想在更高的抽象级别进行测试,它看起来不太可能.

在伪代码中,我想这样做:

StartDbTransaction() // setup
DoSomethingInDB() 
AssertSomething() 
RollBackDbTransaction() // teardown
Run Code Online (Sandbox Code Playgroud)

例如,如果我有这个(从play-silhouette-slick-seeds中简化):

class PasswordInfoDAO(db: JdbcBackend#DatabaseDef) {

    // ...
    def remove(loginInfo: LoginInfo): Future[Unit] =
        db.run(passwordInfoSubQuery(loginInfo).delete).map(_ => ())

}
Run Code Online (Sandbox Code Playgroud)

我以为我可以按照Specs2指南编写一个ForEach特性,这给出了一个通用的例子:

// a transaction with the database
trait Transaction

trait DatabaseContext extends ForEach[Transaction] {
    // you need to define the "foreach" method
    def foreach[R: AsResult](f: Transaction => R): Result = {
        val transaction = openDatabaseTransaction
        try AsResult(f(transaction))
        finally closeDatabaseTransaction(transaction)
    }

    // create and close a transaction
    def openDatabaseTransaction: Transaction = …
Run Code Online (Sandbox Code Playgroud)

scala playframework specs2 slick

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

WebApi AuthorizationFilterAttribute:ActionArguments为空

我正在为WebApi控制器实现AuthorizationFilterAttribute,但我似乎无法访问传递给控制器​​的参数:

在MVC4中,这很好用:

public class MyMVCController : Controller
{
    [CanAccessMyResourceApi]
    public MyViewModel Get(int id)
    {
       //...
    }
}

public class CanAccessMyResourceMVCAttribute : CanAccessAttributeBase
{
   public override void OnAuthorization(AuthorizationContext filterContext)
   {
       var param = filterContext.Controller.ValueProvider.GetValue("id")
       /// ... 
   }
}
Run Code Online (Sandbox Code Playgroud)

但是在WebAPI中,我认为参数应该在ActionArguments中,但是这里的"param"是空的:

public class MyWebApiController : ApiController
{
   [CanAccessMyResourceWebApi]
   public MyViewModel Get(int id)
   {
      //...
   }

}

public class CanAccessMyResourceWebApiAttribute : AuthorizationFilterAttribute 
{
    public override void OnAuthorization(HttpActionContext filterContext)
    {       
        // the debugger shows that ActionArguments is empty:
        var param = filterContext.ActionArguments["id"]
        /// ...
    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-4 asp.net-web-api

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

WebAPI 2中的HttpRouteUrl和属性路由

我有以下控制器,允许我使用以/api/v1/report/123.csv结尾的URL通过CSV下载文件:

[RoutePrefix("api/v{version:int?}/report")]
public class ReportController : ApiController
{
    // ...
    [Route("{id}.{ext}", Name="DownloadCsvReport")]
    public HttpResponseMessage Get(int id, String ext)
    {
       //...
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有任何助手可以构建正确的URL?我正在尝试链接到MVC4.5页面中的文件,但我似乎无法获得扩展或版本:

@Url.HttpRouteUrl("DefaultApi", new { controller = "Report", ext="csv", version=1, id = 3, })

@Url.RouteUrl(routeName: "DownloadCsvReport", routeValues: new { id=123, version=1, ext = "csv"})

@Url.Action("DownloadCsvReport", new { id = 123, ext="csv" })

@Url.RouteUrl("DefaultApi", new { httproute = true, controller = "Report", id = 123, Ext="csv", version =1 })
Run Code Online (Sandbox Code Playgroud)

我认为我没有与这些中的任何一个走在正确的轨道上....他们都没有替换routeprefix中的版本或路由属性中的ext,以及其他各种问题.有没有办法在没有硬编码路径的情况下链接到URL?

c# asp.net-mvc html-helper asp.net-web-api asp.net-web-api-routing

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

Typescript/Angular2 http.post不设置标题

我试图从Angular2 beta 8发布json但是标题没有被传输:

import { RequestOptions, RequestMethod, RequestHeaders, RequestOptionsArgs, Http } from 'angular2/http';

// ...
let headers = new Headers(),
    body = JSON.stringify({ identifier, password });

headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
let opts:RequestOptionsArgs = { headers: headers };

this.http.post(this.baseUrl + 'auth/login', body, opts)
    .subscribe(
         data => console.log(data),
         err => console.log(err.json().message),
         () => console.log('Authentication Complete')
    );
Run Code Online (Sandbox Code Playgroud)

但Chrome中的XHR调用没有这些标题.Chrome调试显示Content-Type标题已标记Provisional Headers are Shown并显示Content-Type:text/plain;charset=UTF-8.标题值似乎是正确的:

console.log(headers.get('Content-Type')) // => 'application/json'
console.log(headers.get('Accept'))       // => 'application/json'
Run Code Online (Sandbox Code Playgroud)

问题是我要进去RequestHeaders,但它应该是Headers.为什么它没有给我一个错误,我不知道.

typescript angular

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

不相容的杰克逊版本:2.7.1在sbt?

从sbt运行TwitterServer时出现此错误:

SEVERE: LoadService: failed to 
instantiate 'com.twitter.finagle.stats.MetricsExporter' 
for the requested service 'com.twitter.finagle.http.HttpMuxHandler'
com.fasterxml.jackson.databind.JsonMappingException: 
Incompatible Jackson version: 2.7.1
Run Code Online (Sandbox Code Playgroud)

2.7杰克逊的依赖从其他地方(circe)传递.我以为我可以用这种方式将它覆盖到2.6.7,但似乎没有效果:

val jacksonV = "2.6.7"
val `jackson-core` = "com.fasterxml.jackson.core" % "jackson-core" % jacksonV
val `jackson-databind` = "com.fasterxml.jackson.core" % "jackson-databind" % jacksonV
val `jackson-annotations` = "com.fasterxml.jackson.core" % "jackson-annotations" % jacksonV
val `jackson-datatype-jsr310` = "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jacksonV
dependencyOverrides += `jackson-core`
dependencyOverrides += `jackson-databind`
dependencyOverrides += `jackson-annotations`
dependencyOverrides += `jackson-datatype-jsr310`
Run Code Online (Sandbox Code Playgroud)

知道为什么这不会覆盖任何东西吗?

scala jackson sbt finagle circe

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

AWS Pinpoint 自定义通道:无法正确调用挂钩中指定的 Lambda 函数

我正在尝试通过设置一个根据示例文档执行 Lambda 函数的 CampaignHook 来为我的 AWS Pinpoint 项目创建一个(测试版)自定义通道。

我的 lambda 函数似乎可以单独正常工作。但是,当我将 CampaignHook 指向 lambda 函数时,我收到此错误:

> aws lambda add-permission --function-name arn:aws:lambda:us-east-1:my-account-id:function:MyFunctionName \
    --statement-id s1 \
    --action lambda:InvokeFunction \
    --principal pinpoint.us-east-1.amazonaws.com \
    --source-arn 'arn:aws:mobiletargeting:us-east-1:my-account-id:/apps/my-pinpoint-project-id/campaigns/*'
=> 
{
    "Statement": "{\"Sid\":\"s1\",\"Effect\":\"Allow\",\"Principal\": {\"Service\":\"pinpoint.us-east-1.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1:my-account-id:function:MyFunctionName\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:mobiletargeting:us-east-1:my-account-id:/apps/my-pinpoint-project-id/campaigns/*\"}}}"
}

> aws pinpoint update-application-settings \
    --application-id my-pinpoint-project-id \
    --write-application-settings-request '{\"CampaignHook\": { \"LambdaFunctionName\": \"arn:aws:lambda:us-east-1:my-account-id:function:MyFunctionName\", \"Mode\": \"DELIVERY\" }}'

=> An error occurred (BadRequestException) when calling the UpdateApplicationSettings operation: Could not properly invoke Lambda function specified in hook.
Run Code Online (Sandbox Code Playgroud)

我的函数是用 C# 编写的,处理程序的签名是:

> …
Run Code Online (Sandbox Code Playgroud)

amazon-iam aws-lambda aws-pinpoint

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