小编Ala*_*Dea的帖子

你如何阻止Guice注入一个没有绑定在模块中的类?

import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;

public class GuiceDemo
{
    public static void main(String[] args)
    {
        new GuiceDemo().run();
    }

    public void run()
    {
        Injector injector = Guice.createInjector(new EmptyModule());
        DemoInstance demoInstance = injector.getInstance(DemoInstance.class);
        assert(demoInstance.demoUnbound == null);
    }

    public static class EmptyModule extends AbstractModule
    {
        @Override
        protected void configure()
        {
        }
    }

    public static class DemoInstance
    {
        public final DemoUnbound demoUnbound;

        @Inject
        public DemoInstance(DemoUnbound demoUnbound)
        {
            this.demoUnbound = demoUnbound;
        }
    }

    public static class DemoUnbound
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以阻止Guice向DemoInstance的构造函数提供DemoUnbound实例吗?

本质上,我正在寻找一种在完全显式的绑定模式下运行Guice的方法,其中注入未绑定的类是一个错误. …

java guice

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

如何将 Data.ByteString.Char8 转换为 Data.ByteString.Lazy 以在 Data.Binary.Get 中使用?

我正在将包从使用GHC.IO.Handle进行网络转换为Network.Connection.Connection痛点之一是Data.ByteString.Lazy.ByteString更改为Data.ByteString.Char8.ByteString 的位置数量。

一个示例函数是:

import qualified Data.ByteString.Lazy as BL

-- gets the size of the frame
-- the bytestring should be at least 7 bytes long, otherwise this method will fail
peekFrameSize :: BL.ByteString -> PayloadSize
peekFrameSize = runGet f
  where
    f = do
      void $ getWord8 -- 1 byte
      void $ (get :: Get ChannelID) -- 2 bytes
      get :: Get PayloadSize -- 4 bytes
Run Code Online (Sandbox Code Playgroud)

如何将Data.ByteString.Char8.ByteString转换为Data.ByteString.Lazy.ByteString以在Data.Binary.Get中使用?

haskell

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

如何检测 HttpServletRequest 的 TLS 版本?

我正在逐步停止对 Web 应用程序的 TLS 1.0 和 TLS 1.1 的支持。

我想根据他们与我的服务器建立的连接来检测这将影响的用户。

我正在运行 Tomcat 7 和 Java 8。

如何检测 HttpServletRequest 的 TLS 版本?

java tomcat servlets

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

如何在 Jenkins 中 git fetch --unshallow ?

我正在将 SonarQube 集成到 Jenkins 中。我们目前使用浅克隆,因为考虑到历史上有大量二进制文件,我们的存储库完全克隆的速度很慢。SonarQube 需要运行git blame,这显然不适用于浅克隆。我需要一个解决方法,但我无法更改全局 Jenkins 配置(这会减慢所有构建速度)。

情况:

checkout scm无需参数即可工作。

sh 'git fetch --unshallow收到错误,因为它没有凭据。

我尝试过这个怪物来自定义结帐 scm 的参数:

checkout scm: [
    $class: 'GitSCM', userRemoteConfigs: [
        [url: env.repoURL, credentialsId: 'GitHubEnterprise']
    ], extensions: [
        [$class: 'CheckoutOption', timeout: 60],
        [$class: 'CloneOption', noTags: true,
            reference: '/var/lib/gitchcache/reference.git',
            shallow: false, timeout: 60]
    ], branches: [
        [name: branch]
    ]
], remoteName: "origin", poll: false, clearWorkspace: true
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

> git rev-parse PR-42^{commit} # timeout=10

Couldn't find any revision to build. Verify the repository …
Run Code Online (Sandbox Code Playgroud)

git github jenkins jenkins-pipeline

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

用于获取 JavaFX WebView 控制台事件的公共 API 是什么?

我想记录 WebView 控制台事件。他们有时会发现所使用的底层浏览器中的怪癖,并可以帮助排除故障。

可以使用 Sun 实现类与 WebView 控制台交互:

import 

//...

WebConsoleListener.setDefaultListener((webView, message, lineNumber, sourceId) ->
         LOGGER.info(() -> "WebConsoleListener: " + message + "[" + webEngine.getLocation() + ":" + lineNumber + "]")
);
Run Code Online (Sandbox Code Playgroud)

但是,com.sun.javafx.webkit.WebConsoleListener是一个实现类,而不是 JavaFX 公共 API 的一部分。

用于获取 JavaFX WebView 控制台事件的公共 API 是什么?

或者,获取这些事件进行故障排除的正确方法是什么?

java javafx

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

为什么我调用函数“文件”失败:不存在文件?

我创建了一个简单的模块:

.
??? inputs.tf
??? main.tf
Run Code Online (Sandbox Code Playgroud)

输入变量声明于inputs.tf

variable "workers" {
    type = number
    description = "Amount of spark workers"
}
variable "values_values_path" {}
Run Code Online (Sandbox Code Playgroud)

main.tf 是:

resource "helm_release" "spark" {
    name       = "spark"
    repository = "https://charts.bitnami.com/bitnami" 
    chart      = "spark"
    version    = "1.2.21"
    namespace  = ...

    set {
        name  = "worker.replicaCount"
        value = var.workers
    }

    values = [
        "${file("${var.custom_values_path}")}"
    ]
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在尝试部署 helm 版本。我想设置一个参数化为的自定义值文件custom_values_path

.
??? main.tf
??? provider.tf
??? spark-values.yaml
Run Code Online (Sandbox Code Playgroud)

main.tf这里是:

module "spark" {
    source …
Run Code Online (Sandbox Code Playgroud)

terraform

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

为什么我在这个Scala表达式中需要这个nullary函数的括号?

对于我,这不能用Scala 2.7.7.final或2.8.0.final 编译:

new FileInputStream("test.txt") getChannel transferTo(
    0, Long.MaxValue, new FileOutputStream("test-copy.txt") getChannel)
Run Code Online (Sandbox Code Playgroud)

这对我来说使用Scala 2.7.7.final和2.8.0.final进行编译:

new FileInputStream("test.txt") getChannel() transferTo(
    0, Long.MaxValue, new FileOutputStream("test-copy.txt") getChannel)
Run Code Online (Sandbox Code Playgroud)

为什么我需要做getChannel()而不仅仅是getChannel在这里?

syntax dsl scala

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

为什么 Scala 在 IntelliJ 中的大型 Java/Scala 项目上编译失败?

我有一个包含八个模块和大约 500 个 Java KLines 的 IntelliJ 项目。我在依赖于所有其他模块的模块中添加了一个 Scala Facet。

在 IntelliJ IDEA 9.0.2 中编译HelloWorld.scala时:

object HelloWorld {
  def main(args: Array[String]) {
    println("Hello World!")
  }
}
Run Code Online (Sandbox Code Playgroud)

我在消息面板中得到以下输出:

Information:Compilation completed with 32 errors and 0 warnings
Information:32 errors
Information:0 warnings
Error:Scalac internal error: class java.lang.reflect.InvocationTargetException [sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25), java.lang.reflect.Method.invoke(Method.java:597), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:74)][scala.tools.nsc.typechecker.Typers$class.newTyper(Typers.scala:68), scala.tools.nsc.Global$analyzer$.newTyper(Global.scala:295), scala.tools.nsc.typechecker.Namers$Namer.<init>(Namers.scala:68), scala.tools.nsc.typechecker.Namers$NormalNamer.<init>(Namers.scala:43), scala.tools.nsc.typechecker.Namers$class.newNamer(Namers.scala:44), scala.tools.nsc.Global$analyzer$.newNamer(Global.scala:295), scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:258), scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:256), scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61), scala.collection.immutable.List.foreach(List.scala:45), scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:256), scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:347), scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply(Analyzer.scala:39), scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:276), scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:276), scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48), scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:276), scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:252), scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:252), scala.collection.Iterator$class.foreach(Iterator.scala:631), scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:304), scala.tools.nsc.Global$GlobalPhase.run(Global.scala:252), scala.tools.nsc.Global$Run.compileSources(Global.scala:733), scala.tools.nsc.Global$Run.compile(Global.scala:813), scala.tools.nsc.Main$.process(Main.scala:108), scala.tools.nsc.Main$.main(Main.scala:122), scala.tools.nsc.Main.main(Main.scala), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), …
Run Code Online (Sandbox Code Playgroud)

plugins scala intellij-idea

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

您如何将一种资源的输出值作为输入分配给另一种资源?

.tf我的根模块中有两个文件:

第一个被称为api-gateway.tf在 AWS 中提供 API 网关:

resource "aws_apigatewayv2_api" "apiGateway" {
  name          = "some_Name"
  protocol_type = "HTTP"
}

output "api_gateway_endpoint" {
value = "${aws_apigatewayv2_api.apiGateway.api_endpoint}"
}
output "api_gateway_endpoint_id" {
value = "${aws_apigatewayv2_api.apiGateway.id}"
}
Run Code Online (Sandbox Code Playgroud)

我有另一个.tf名为route53.tf创建Route53记录的文件:

resource "aws_route53_record" "www" {
  zone_id = "xxxxx"
  name    = "someurl.com"
  type    = "A"
  alias {
    name                   = "${output.api_gateway_endpoint}"
    zone_id                = "${output.api_gateway_endpoint_id}"
    evaluate_target_health = false
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要将 apigateway的api_endpointid传递到 route53,但我不知道如何?

我尝试使用output和引用 route53 资源中的返回这两个值,但是它不起作用。它给了我一个undeclared …

terraform terraform-provider-aws

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

为什么我得到参数“env”是必需的,但没有找到定义?

我有以下目录/文件结构:

.
??? main.tf
??? modules
? ??? Resource_group
? ??? main.tf
? ??? vars.tf
Run Code Online (Sandbox Code Playgroud)

配置文件

./main.tf

module "app-rg" {
  source = "./modules/Resource_Group"
}
Run Code Online (Sandbox Code Playgroud)

./modules/resource_group/main.tf

provider "azurerm" {
  version = "=2.11.0"
  features { }
}

resource "azurerm_resource_group" "rg" {
  name = "${lookup(var.resource_group, var.env)}"
  location = "${lookup(var.location, var.env)}"
}
Run Code Online (Sandbox Code Playgroud)

./modules/resource_group/vars.tf

variable "env" {
  description = "env : dev or prod"
}

variable "resource_group" {
  type = "map"
  default = {
    dev = "rg-dev"
    prod = "rg-prod"
  }
}

variable "location" { …
Run Code Online (Sandbox Code Playgroud)

terraform terraform-provider-azure

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