问题列表 - 第251418页

在没有 Android 的情况下使用 Dagger2

我想在 Gradle 项目中使用 Dagger2 和 MVP,但不使用 Android,而是使用本机 Java。但我无法构建我的项目,DaggerAppComponent 类永远不会生成。该类由 Dagger lib 在编译时自动生成。

构建.gradle:

plugins {
    id "net.ltgt.apt" version "0.11"
}
apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

compileJava {
    options.annotationProcessorPath = configurations.apt
}

configurations {
    apt
}


dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile "com.google.dagger:dagger:2.11"
    apt     "com.google.dagger:dagger-compiler:2.11"
    apt     "com.google.dagger:dagger-producers:2.11"


    compileOnly "com.google.auto.factory:auto-factory:1.0-beta3"
    apt         "com.google.auto.factory:auto-factory:1.0-beta3"

    compileOnly "org.immutables:value:2.2.10:annotations"
    apt         "org.immutables:value:2.2.10"


    provided 'javax.annotation:jsr250-api:1.0'
    compile 'org.glassfish:javax.annotation:10.0-b28'

}
Run Code Online (Sandbox Code Playgroud)

主程序.java

public class Main {

private static AppComponent appComponent; …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection intellij-idea dagger-2

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

如何比较两个Struct对象?

对于具有不同值的同一结构类,我有两个对象.我需要比较这两个对象是否相等.请引导我通过适当的解决方案.

struct CustomerInfo {
   var billAddressCity: String?

   init(a:String?){
      billAddressCity = a

  }
}

 /* init object */
 var obj1 =  CustomerInfo?
 var obj2 =  CustomerInfo?

 obj1 = CustomerInfo(a: "ONE")
 obj2 = CustomerInfo(a: "TWO")

 /*  I need to compare these two objects */

 if obj1 == obj2 {
     Print(equal values)
  }
Run Code Online (Sandbox Code Playgroud)

这不是我寻找的答案,因为它说我需要手动比较字段的每个值, 比较Swift中对象的两个实例

ios swift

4
推荐指数
2
解决办法
9712
查看次数

Angular 4-路由器解析不适用于BehaviorSubject

在这方面,非常感谢角顶大师的帮助。

这是我要尝试执行的操作,当我访问主应用程序页面时,它会从config.service.ts调用getConfigs()并从后端获取数据,然后更新this.configStringSource.next(config)。在那之后,我试图将其重定向到this.router.navigate(['/ clone / status']),但是重定向没有发生。

应用程序路由

import { Routes, RouterModule } from '@angular/router';

import { CloneComponent } from './clone/clone.component';
import { StatusComponent } from './status/status.component';
import { ConfigurationComponent } from './configuration/configuration.component';
import { LogsComponent } from './logs/logs.component';
import { ConfigResolver } from './_services/config-resolver.service';

const appRoutes: Routes = [
    { path: 'clone', component: CloneComponent, children: [
        {path: 'status', component: StatusComponent, resolve: {config: ConfigResolver} },
        ]
    },
    { path: 'logstream', component: LogstreamComponent },
];

export const AppRouting = RouterModule.forRoot(appRoutes);
Run Code Online (Sandbox Code Playgroud)

配置文件

export class …
Run Code Online (Sandbox Code Playgroud)

observable angular angular4-router

5
推荐指数
2
解决办法
3315
查看次数

如何使用RSA-SHA1算法签署xml元素?

我需要使用RSA-SHA1算法签署(并最终验证)XML文档的一个节点.w3.org链接

RSA-SHA1 URI:
http://www.w3.org/2000/09/xmldsig#rsa-sha1
指定于:
[XMLDSIG-CORE2002]的第6.4.2节

我正在关注这个例子,但无法想出如何将算法更改为所需.

签名生成发生在这里:

signedXml.ComputeSignature();
Run Code Online (Sandbox Code Playgroud)

带参数的唯一覆盖期望KeyedHashAlgorithm:

public void ComputeSignature(KeyedHashAlgorithm macAlg);(链接)

KeyedHashAlgorithm(链接)反过来只允许创建HMAC*和MAC*算法,并且没有RSA-SHA1.

在.Net中使用RSA-SHA1签署XML的最简单方法是什么?

编辑:

我正在尝试使用X509证书来提取密钥.证书的签名算法属性是sha1RSA.

这是我分配它的方式:

var signedXml = new SignedXml(xmlDoc);
...
signedXml.SigningKey = (RSACryptoServiceProvider)cert.PrivateKey;
...
signedXml.ComputeSignature();
Run Code Online (Sandbox Code Playgroud)

将得到的签名XML格式一致预期的一个,但digestsignature值无效.

.net c# xml cryptography digital-signature

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

如何在Perl中的switch语句中对案例进行分组

给出一个代码

use Switch;

my $var1x = "one";

switch ($var1x) {
    case "one" { print "Why so small?\n"}
    case "two" { print "Why so small?\n"}
    case "three" { print "That is ok.\n"}
    case "four"  { print "That is ok.\n"}
}
Run Code Online (Sandbox Code Playgroud)

我想将类似案件的实施分组.有任何建议如何在Perl中正确编写它?

string perl switch-statement

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

连接到VirtualBox内的Kafka

我遇到麻烦从我的主机(Windows)连接到我安装Kafka的Guest(Linux).

我已经安装了一个VM(使用VirtualBox),我在其中安装了Confluent工具.在这个VM中,我运行命令:

confluent start schema-registry
Run Code Online (Sandbox Code Playgroud)

它启动zookeeper,kafka和schema-registry.

在这个VM下,我可以运行

kafka-console-producer --broker-list localhost:9092 --topic test
Run Code Online (Sandbox Code Playgroud)

kafka-console-consumer --bootstrap-server localhost:9092 --topic test
Run Code Online (Sandbox Code Playgroud)

一切正常,我可以制作和接收信息.

但是我的目标是能够从我的主机生成和使用消息,所以我设置了这个端口转发规则: 端口转发规则

从我的Windows,我期待这个命令工作:

bin\windows\kafka-console-producer.bat --broker-list 127.0.0.1:9092 --topic test
Run Code Online (Sandbox Code Playgroud)

但我得到的只是:

ERROR Error when sending message to topic test with key: null, value: 3 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test-0: 1529 ms has passed since batch creation plus linger time 
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的东西,但仍然无法找到解决方案....任何想法?

virtualbox apache-kafka kafka-consumer-api kafka-producer-api

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

为什么协同程序不能与run_in_executor一起使用?

我想运行一个使用协同程序和多线程请求URL的服务.但是我无法将协同程序传递给执行程序中的工作程序.有关此问题的最小示例,请参阅下面的代码:

import time
import asyncio
import concurrent.futures

EXECUTOR = concurrent.futures.ThreadPoolExecutor(max_workers=5)

async def async_request(loop):
    await asyncio.sleep(3)

def sync_request(_):
    time.sleep(3)

async def main(loop):
    futures = [loop.run_in_executor(EXECUTOR, async_request,loop) 
               for x in range(10)]

    await asyncio.wait(futures)

loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
Run Code Online (Sandbox Code Playgroud)

导致以下错误:

Traceback (most recent call last):
  File "co_test.py", line 17, in <module>
    loop.run_until_complete(main(loop))
  File "/usr/lib/python3.5/asyncio/base_events.py", line 387, in run_until_complete
    return future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 274, in result
    raise self._exception
  File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step
    result = coro.send(None)
  File "co_test.py", line 10, in main
    futures …
Run Code Online (Sandbox Code Playgroud)

python-multithreading python-3.x async-await python-asyncio

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

selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要在 PATH 中

在此处输入图片说明我正在尝试使用 python 和 selenium 自动化我的 Web 应用程序,我面临以下问题。

环境 - Mac/Python/Selenium IDE - PyCharm

selenium.common.exceptions.WebDriverException: 消息:'chromedriver' 可执行文件需要在 PATH 中。请参阅 https://sites.google.com/a/chromium.org/chromedriver/home

请帮我解决这个问题。

python selenium pycharm selenium-chromedriver

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

在NodeJS中使用带有大量数据的Datatable时搜索错误

我的数据库中有大约5,00,000条记录.我正在使用DataTables来构建管理面板来管理记录.我将Node.js作为MongoDB的支持.

我使用过这个库 - https://www.npmjs.com/package/datatables-query

到目前为止,在页面加载我已成功加载结果,如下图所示.

在此输入图像描述

每当我在搜索框中输入内容时,我都会收到500错误,如屏幕截图所示.

在此输入图像描述

这可能是什么问题?

DataTable是显示大量数据网格的好选择还是考虑Node.js,Express和MongoDB组合有什么更好的选择?

这是我的服务器端代码.

app.post('/getUsersData',function(req, res) {
  var Model = require('./models/user'),
    datatablesQuery = require('datatables-query'),
    params = req.body,
    query = datatablesQuery(Model);

  query.run(params).then(function (users) {
    var data = JSON.stringify(users);
    // var data = JSON.stringify(users);

    res.end(data);
  }, function (err) {
    res.status(500).json(err);
  });
});
Run Code Online (Sandbox Code Playgroud)

我在MongoDB中有一个名为User with 3 columns的表

1)姓名

2)电子邮件

3)密码

$(document).ready(function() {
  var table = $('#datatable').DataTable({
    // dom: 'Bfrtip',
    processing: true,
    serverSide: true,
    order: [[1, 'asc']],
    "aoColumnDefs": [ { "sClass": "hide_me", "aTargets": [ 0 ], visible: false } …
Run Code Online (Sandbox Code Playgroud)

datatable datatables mongodb node.js

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

用于包含的 Java 8 过滤器

我是 Java 8 的新手,当我尝试为所有包含一个字母的城市设置过滤器时。它对我不起作用。但是,当我使用旧方法运行它时,它会起作用。

    List<String> cityList = new ArrayList<>();
    cityList.add("Noida");
    cityList.add("Gurgaon");
    cityList.add("Denver");
    cityList.add("London");
    cityList.add("Utah");
    cityList.add("New Delhi");

    System.out.println(cityList);

/* Prior to Java 8 Approach */      
    for (String city : cityList) {
            if(city.contains("a")){
                System.out.println(city + " contains letter a");
            }
        }
/* Java 8 Approach */           
    System.out.println(Stream.of(cityList).filter(str -> str.contains("a")).collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

这是输出

Noida contains letter a
Gurgaon contains letter a
Utah contains letter a
[]
Run Code Online (Sandbox Code Playgroud)

你能解释一下我在哪里犯了错误。

提前致谢 !

java lambda java-8 java-stream

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