Springboot 2 @DataMongoTest错误

我试图在使用kotlin的springboot应用程序中运行一些测试。 挑战是@DataMongoTest中的嵌入式mongodb在随机端口上打开,而弹簧引导数据mongo正在默认端口上寻找连接 我的配置如下: @Configuration @ComponentScan(basePackages = [“zw.co.ift.creditrating.persistence”]) @EnableReactiveMongoRepositories(basePackages = [(“zw.co.ift.creditrating.persistence.repository”)]) class PersistenceConfiguration : AbstractReactiveMongoConfiguration() { @Bean override fun reactiveMongoClient() = MongoClients.create() override fun getDatabaseName() = “bank” } 我的测试如下: @DataMongoTest @ContextConfiguration(classes = [(PersistenceIntegrationConfiguration::class)]) @EnableAutoConfiguration @ExtendWith(SpringExtension::class) 现在以下是我正在运行的测试的输出: 2017-12-07 20:15:56.910 INFO 52176 — [Thread-7] osbamongo.embedded.EmbeddedMongo:2017-12-07T20:15:56.909 + 0200 I CONTROL [initandlisten] MongoDB starting:pid = 52177 port = 61313 dbpath […]

Dagger 2将命名对象注入到一个Activity中

我有一种感觉,这是对Dagger如何工作的一个简单的误解。 唉,我无法find问题。 我有几个GotIt像卡,我想要使用全部。 为此,我使用了一个模型,其中包括图标,正文文本,动作文本和动作点击处理程序。 各种活动使用不同的适配器来表示状态。 现在我正在关注一张卡片,告诉用户何时缺少位置权限。 我想要做的是创建一个模块,提供各种卡,我有(使用Kotlin): @Module class GotItCardModule { @Provides @Singleton @Named(Manifest.permission.ACCESS_FINE_LOCATION) fun provideLocationGotItCard(application: Application): GotItViewHolder.GotItCard { val icon = ResourcesCompat.getDrawable(application.resources, R.drawable.ic_location_off_black_24dp, null)?.apply { DrawableCompat.setTint(this, Color.WHITE) } return GotItViewHolder.GotItCard( iconDrawable = icon, bodyText = application.getString(R.string.location_permission_gotit_body), primaryButtonText = application.getString(R.string.location_permission_gotit_action_primary), primaryButtonCallback = View.OnClickListener { v -> (v.context as? Activity)?.let { activity -> ActivityCompat.requestPermissions(activity, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), RequestCode.Permission.ACCESS_FINE_LOCATION) […]

卡夫卡流:使用相同的`application.id`从多个主题中消费

我有一个应用程序,需要听取多个不同的主题; 每个主题都有独立的消息处理逻辑。 我曾经想过为每个KafkaStreams实例使用相同的kafka属性,但是我得到如下所示的错误。 错误 java.lang.IllegalArgumentException: Assigned partition my-topic-1 for non-subscribed topic regex pattern; subscription pattern is my-other-topic 代码 (kotlin) class KafkaSetup() { companion object { private val LOG = LoggerFactory.getLogger(this::class.java) } fun getProperties(): Properties { val properties = Properties() properties.put(StreamsConfig.APPLICATION_ID_CONFIG, “my-app”) return properties } private fun listenOnMyTopic() { val kStreamBuilder = KStreamBuilder() val kStream: KStream […]

如何用Kotlin做JEE CDIdependency injection

我已经将正式编写成Java的JEE应用程序中的REST资源转换为Kotlin。 该应用程序以Weld作为dependency injection框架在Wildfly Application Server中运行。 这是我提出的最终实现: @Path(“/myResource”) open class MyResource { @Context private lateinit var context: SecurityContext open protected setSecurityContext(securityContext: SecurityContext) { this.context = securityContext } @POST @Path(“/change”) @Transactional @Consumes(MediaType.APPLICATION_JSON) open internal fun change(data: MyChangeData, @Context uriInfo: UriInfo): Response { // … } } 二传手是为了测试的目的。 随着Mockito或其他模拟框架,可以设置私人领域这不是必要的。 我在这个实现中遇到了一些问题: 我不得不改变类和所有open方法,以允许CDI容器为这个bean创建一个代理。 据我了解这个话题,没有其他办法可以让Weld在不允许inheritance的情况下完成工作吗? 一般来说,Kotlin使用私有字段支持的给定修饰符(public / private / protected)为属性生成setter和getter。 但是在使用lateinit […]

在片段中使用上下文

我怎样才能得到一个片段的上下文? 我需要使用我的数据库的构造函数在上下文中,但getApplicationContext()和FragmentClass.this不工作,所以我能做什么? 数据库构造函数 public Database(Context ctx) { this.context = ctx; DBHelper = new DatabaseHelper(context); }

cordapp-template-java“找不到匹配的构造函数…”

我试着测试你好,世界! 教程示例并收到以下错误: No matching constructor found: – [arg0: Integer, arg1: Party]: missing parameter arg0 这是通过运行命令生成的: start IOUFlow iouValue: 99, otherParty: “O=PartyB,L=New York,C=US” 请看这里 。

替代function重载

下面的代码 fun getValue(): Int { return 42 } fun getValue(): String { return “Foo” } 给出以下错误: 有冲突的重载 :本地最终乐趣getValue():在本地最终乐趣中定义的字符串getValue():在main中定义的Int。 有没有办法避免重命名的function之一?

android.widget.Switch – 开/关事件监听器?

我想实现一个开关按钮,android.widget.Switch(可从API v.14中获得)。 但我不知道如何添加一个事件监听器的按钮。 它应该是一个“onclick”的听众? 我怎么知道它是否“打开”?

在Kotlin的ArrayList中插入或添加项目?

你好,任何人都可以帮助我,如何可以在arraylist kotlin语言增值

在Lambda – > CloudWatch中,多行日志记录如何工作?

我的多行日志记录事件最终都是多事件 – 每行一个事件。 根据文件 : 每次调用LambdaLogger.log()都会导致CloudWatch Logs事件… 但是之后: 但是请注意,AWS Lambda会将System.out和System.err返回的每一行视为一个单独的事件。 看看LambdaAppender的源代码 ,看来它仍然会将事件记录到System.out 。 那么这是否意味着多线消息将总是被分解成多个事件? 我已经阅读了有关配置multi_line_start_pattern的内容 ,但似乎只适用于部署日志代理,而这在Lambda中是不可访问的。 [编辑] LambdaAppender记录到记录到System.out LambdaLogger 。 [编辑]我find了一些建议解决方法的post – 在打印邮件时使用“\ r”作为eol。 这似乎适用于我的代码产生的消息。 堆栈跟踪记录到处都是一个问题。 [编辑] 我一直在使用两种解决方法 : 在JSON中记录复杂的数据结构(例如相当大的地图)。 CloudWatch实际上可以识别日志事件中的JSON字符串,并将其打印出来。 用’\ r’替换’\ n’。 对于堆栈跟踪,我创建了一个实用程序方法(这是在Kotlin中,但是这个方法足够通用): fun formatThrowable(t: Throwable): String { val buffer = StringWriter() t.printStackTrace(PrintWriter(buffer)) return buffer.toString().replace(“\n”, “\r”) } 我认为从长远来看,一个更理想的解决方案将是装饰ConsoleAppender的Appender实现,它将对所有通过的消息进行替换。