小编mko*_*bit的帖子

不调用NSURLSessionDataDelegate方法didReceiveData和其他方法

我有一个问题,没有调用didReceiveData和didCompleteWithError.这是我的代码:

class LoginViewController: UIViewController, NSURLSessionDataDelegate, NSURLSessionDelegate, NSURLSessionTaskDelegate {
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
@IBAction func loginAction(sender: AnyObject) {

    var sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()

    var session = NSURLSession(configuration: sessionConfiguration, delegate: self, delegateQueue:nil)

    let postParams = "email="+"rabcd@gmail.com&password="+"abcd"

    let url = NSURL(string:"http://myurl.com/api/v1/user/login")
    let request = NSMutableURLRequest(URL: url!)

    request.HTTPMethod = "POST"

    request.HTTPBody = postParams.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)

    let task = session.dataTaskWithRequest(request)


    task.resume()


}
Run Code Online (Sandbox Code Playgroud)

这些是我实施的代表

func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveResponse response: NSURLResponse, completionHandler: (NSURLSessionResponseDisposition) -> Void) {

}

func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) { …
Run Code Online (Sandbox Code Playgroud)

swift ios8.1

7
推荐指数
2
解决办法
6741
查看次数

如何使gradle/intellij/play框架协同工作?

这里有一个Gradle构建,这里建议使用play web framework.

plugins {
  id 'play'
  id 'idea'
}

repositories {
  jcenter()
  maven {
    name "typesafe-maven-release"
    url "https://repo.typesafe.com/typesafe/maven-releases"
  }
  ivy {
    name "typesafe-ivy-release"
    url "https://repo.typesafe.com/typesafe/ivy-releases"
    layout "ivy"
  }
}
Run Code Online (Sandbox Code Playgroud)

它在构建,启动等时从命令行工作正常但是一旦项目在intellij中导入(想法的项目文件生成gradle idea),依赖项(来自播放插件)不会显示在项目视图/外部库中(甚至在gradle面板中点击"刷新所有gradle项目"之后).

谢谢 :)

PS:intellij 15.0.2/gradle 2.6/播放插件

在此输入图像描述

scala intellij-idea gradle playframework

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

如何让IntelliJ识别gradle生成的源dir?

所以我有一个像顶部一样旋转的XJC javaExec,但IntelliJ不识别生成的输出,尽管标记generated-src/java为这样.我是否需要调整插件或其他内容?

注意:插件本身从根目录加载到子项目中build.gradle.

XJC项目:

description = "Generates sources and compiles them into a Jar for $project"

configurations { xjc }
dependencies {
    xjc 'org.glassfish.jaxb:jaxb-xjc:2.2.11'
    xjc 'org.glassfish.jaxb:jaxb-runtime:2.2.11'
}

task xjc (type:JavaExec) {

    doFirst{
        File generatedSrcDir = file("$buildDir/generated-src/java")
        if (!generatedSrcDir.exists()) {
            generatedSrcDir.mkdirs()
        }
    }

    main = "com.sun.tools.xjc.XJCFacade"
    classpath configurations.xjc

    def argsList = [
            "-mark-generated",
            "-no-header",
            "-verbose", // or -quiet or nothing for default.
            "-target", "2.1",
            "-encoding", "UTF-8",
            "-d", "$buildDir/generated-src/java",
            "-catalog","$projectDir/src/main/resources/commons-gradle.cat",
            file("$projectDir/src/main/resources/v1/") ]

    args argsList
    inputs.files files(file("$projectDir/src/main/resources/v1/"))
    outputs.files files(file("$buildDir/generated-src/java"),file("$buildDir/classes")) …
Run Code Online (Sandbox Code Playgroud)

gradle generated

7
推荐指数
3
解决办法
5625
查看次数

如何在 Jenkins 管道中加载 bash 脚本?

我们有一些复杂的 bash 脚本,现在位于 Jenkins 的托管文件部分。我们尝试将作业迁移到管道,但我们不知道将 bash 脚本转换为 groovy,因此我们希望将其保留在 bash 中。我们在 Git 中有一个 jenkins-shared-library,我们在其中存储我们的管道模板。在作业中,我们添加了正确的环境变量。

我们希望将 bash 脚本保存在 git 中而不是托管文件中。在管道中加载此脚本并执行它的正确方法是什么?我们用 尝试了一些东西libraryResource,但我们没有设法让它工作。我们必须将test.sh脚本放在 git 中的什么位置以及如何调用它?(或者在这里运行shell脚本是完全错误的)

def call(body) {
    // evaluate the body block, and collect configuration into the object
    def pipelineParams= [:]
    body.resolveStrategy = Closure.DELEGATE_FIRST
    body.delegate = pipelineParams
    body()

    pipeline {
        agent any

        options {
            buildDiscarder(logRotator(numToKeepStr: '3'))
        }

        stages {

            stage ('ExecuteTestScript') {
                steps {
                    def script = libraryResource 'loadtestscript?'

                    script {
                        sh './test.sh'
                    }
                }
            }

        }

        post { …
Run Code Online (Sandbox Code Playgroud)

bash jenkins jenkins-pipeline

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

kubernetes 中的可选卷/秘密卷?

如果存在,我想挂载卷。例如:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: redis
    volumeMounts:
    - name: foo
      mountPath: "/etc/foo"
  volumes:
  - name: foo
    secret:
      secretName: mysecret
Run Code Online (Sandbox Code Playgroud)

是文档中的示例。但是,如果秘密mysecret不存在,我想跳过安装。那是乐观/可选的挂载点。

现在它会停止,直到创建秘密。

kubernetes

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

在Jenkinsfile中的步骤中找不到这样的DSL方法

我想在循环中执行一些阶段.我有Jenkinsfile

pipeline {
  agent any
  tools {}
  parameters {}
  environment {}
  stages {
    stage('Execute') {
      steps {
        script {
          for (int i = 0; i < hostnameMap.size; i++) {

            hostname = hostnameMap[i]
            echo 'Executing ' + hostname

            stage('Backup previous build ' + hostname) {
              backup(hostname, env.appHome)
            }


            stage('Deploy ' + hostname) {
              when {
                expression { env.BRANCH_NAME ==~ /(dev|master)/ }
              }
              steps {
                script {
                  deploy(hostname , env.appHome, env.appName)
                }
              }
            }

            stage('Restart ' + hostname) {
              when {
                expression …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

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

Kubernetes CronJob将来会运行一次

Kubernetes CronJob 文档提到a CronJob支持以下用例:

  • 一旦到达指定的时间点

但是,我没有看到任何关于如何实现这一点的示例/文档.具体来说,我打算在N小时内开始工作一次.Kubernetes的任何版本都支持此功能吗?

cron kubernetes kubernetes-cronjob

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

如何在不知道名称(或编号)的情况下从共享库中的资源文件夹加载文件?

如您所知,在 Jenkins 的共享库中,可以通过执行以下操作来加载资源(位于资源文件夹中):

libraryResource("script.sh")
Run Code Online (Sandbox Code Playgroud)

现在我的用例是我想在资源下的文件夹中加载多个文件:

+ resources
 + teamA
  + script1.sh
  + script2.sh
Run Code Online (Sandbox Code Playgroud)

我想在做任何事情之前加载所有这些文件:我在共享库中做了一个方法:

+ resources
 + teamA
  + script1.sh
  + script2.sh
Run Code Online (Sandbox Code Playgroud)

在哪里 scriptsFolder= "teamA"

我当然得到java.io.IOException: Is a directory 因为libraryResource必须得到一个文件路径参数。

那么,有没有一种方法可以在不知道名称或编号的情况下加载所有这些文件?

shared-libraries jenkins jenkins-pipeline

7
推荐指数
2
解决办法
6548
查看次数

自动包装的@Repeatable注释的顺序

在此之前,我曾经手工使用数组声明包装器注释,然后像这样调用它:

@Foos({ @Foo(0), @Foo(1), @Foo(2) })
public void bar() {}
Run Code Online (Sandbox Code Playgroud)

由于我使用{ ... }初始化器创建了一个数组,所以当我稍后通过Reflection访问此方法时,顺序与声明的相同是非常清楚的.

但是,当我使用@RepeatableJava 8中的新注释时,我是否保证将保留订单?

我宣布了一组简单的注释:

public @interface Foos {
  Foo[] value();
}

@Repeatable(Foos.class)
public @interface Foo {
 int value();
} 
Run Code Online (Sandbox Code Playgroud)

并针对最多样化的场景运行一些测试:

@Foo(0) @Foo(1) @Foo(2)
public void bar1() {}

@Foo(2)
@Deprecated @Foo(5)
@Foo(10)
public void bar2() {}
Run Code Online (Sandbox Code Playgroud)

一切似乎完美无缺(当通过Reflection访问时),但我不想依赖于未记录的东西.我觉得应该是这样,但我无法在任何地方找到它!任何人都可以对此有所了解吗?

java annotations java-8

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

在 aws 上使用 boto3 进行 dynamoDB 时出现 InvalidSignatureException

当我尝试连接到 aws 上的 dynamoDB 时,我遇到了某种凭据问题。在本地,一切正常,我可以使用环境变量进行连接AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY然后AWS_DEFAULT_REGION

dynamoConnection = boto3.resource('dynamodb', endpoint_url='http://localhost:8000')
Run Code Online (Sandbox Code Playgroud)

当更改为环境变量中的实时信用并将端点_url 设置为 aws 上的 dynamoDB 时,会失败并显示:

“botocore.exceptions.ClientError:调用查询操作时发生错误 (InvalidSignatureException):我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。”

这些信用是有效的,因为它们在与同一 dynamoDB 通信的不同应用程序中使用。我也尝试过不使用环境变量,而是直接在方法中使用,但错误仍然存​​在。此外,为了避免尾随空格出现任何问题,我什至直接在代码中使用了凭据。我使用 Python v3.4.4。

是否还应该设置一个我不知道的标头?任何提示将不胜感激。

编辑

我现在还创建了新的凭据(以确保只有字母数字符号),但仍然没有骰子。

amazon-web-services amazon-dynamodb python-3.4 boto3

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