小编jas*_*siu的帖子

查找不同的值,而不是弹性搜索中的不同计数

Elasticsearch文档 提示*他们的代码

*文件已修复

GET /cars/transactions/_search?search_type=count
{
  "aggs": {
    "distinct_colors": {
      "cardinality": {
        "field": "color"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

对应于sql查询

SELECT DISTINCT(color) FROM cars
Run Code Online (Sandbox Code Playgroud)

但它实际上对应于

SELECT COUNT(DISTINCT(color)) FROM cars
Run Code Online (Sandbox Code Playgroud)

我不想知道我有多少不同的值,但有什么不同的值.谁知道如何实现这一目标?

distinct elasticsearch

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

使用@JsonSubTypes反序列化没有值 - 缺少属性错误

我像这样反序列化jsons:

{
  "type":"a",
  "payload" : {...}
}
Run Code Online (Sandbox Code Playgroud)

有效负载类型取决于类型.我的课:

public class Sth<T extends Payload> {

    @JsonProperty("type")
    private String type;
    @Valid
    private T payload;

    @JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,
        include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
        property = "type",
        visible = true,
        defaultImpl = NoClass.class)
    @JsonSubTypes({
        @JsonSubTypes.Type(value = APayload.class, name = "a"),
        @JsonSubTypes.Type(value = BPayload.class, name = "b"),
        @JsonSubTypes.Type(value = CPayload.class, name = "c")})
    public void setPayload(T payload) {
    this.payload = payload;
    }

    public void setType(String type) {
    this.type = type;
    }

}
Run Code Online (Sandbox Code Playgroud)

我也输入了没有负载的"d".如果我尝试反序列化:

{
  "type":"d",
  "payload" …
Run Code Online (Sandbox Code Playgroud)

java json jackson

10
推荐指数
2
解决办法
5888
查看次数

如何使用javax.xml.crypto.dsig对XML文件进行签名时添加命名空间.*?

我正在尝试使用封装签名和javax.xml.crypto.dsig.*类来签署xml文件.因此,我获得了具有正确签名内容但未定义命名空间的文件.如何添加xmlns:ds ="http://www.w3.org/2000/09/xmldsig#"命名空间和相应的ds前缀?我没有看到任何可以定义它的地方.

示例代码:

    XMLSignatureFactory xmlSignatureFactory = XMLSignatureFactory.getInstance("DOM");

    (...)

    XMLSignature signature = xmlSignatureFactory.newXMLSignature(signedInfo, keyInfo);

    // Marshal, generate, and sign the enveloped signature.
    signature.sign(domSignContext);
Run Code Online (Sandbox Code Playgroud)

给出了示例XML:

<?xml version="1.0" encoding="UTF-8"?>
<test xmlns="http://different.namespace.com">
    <someBody/>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
            <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>     
            <Reference URI="">
                <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                </Transforms>
                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <DigestValue>base64_digest</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>some_base64</SignatureValue>
        <KeyInfo>
            <X509Data> 
                <X509SubjectName>subject_data</X509SubjectName>
                <X509Certificate>some_more_base64</X509Certificate>
            </X509Data>
            <KeyValue>
                <RSAKeyValue>
                    <Modulus>another_base64</Modulus>
                    <Exponent>base64_as_well</Exponent>
                </RSAKeyValue>
            </KeyValue>
        </KeyInfo>
   </Signature>
</test>
Run Code Online (Sandbox Code Playgroud)

但我想要:

<?xml version="1.0" encoding="UTF-8"?>
<test xmlns="http://different.namespace.com" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <someBody/>
    <ds:Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>     
            <ds:Reference URI="">
                <ds:Transforms> …
Run Code Online (Sandbox Code Playgroud)

java namespaces xmlsec

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

如何检查sbt测试是否失败?

我想编写一个脚本来构建、测试并将我的应用程序部署到测试环境。我可以使用 sbt 手动运行测试:

sbt test
Run Code Online (Sandbox Code Playgroud)

但它似乎没有返回任何值(只是原始字符串测试结果)。

有没有比我当前的解决方案更好的方法来检查 sbt 测试是否失败:

TESTS_FAILED=`sbt test | grep "sbt.TestsFailedException" | wc -l`
Run Code Online (Sandbox Code Playgroud)

bash sbt

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

new String(byte [])和DatatypeConverter.printBase64Binary(byte [])之间有什么区别?

我需要将base64编码的数据作为字符串值传递给xml.我注意到下面的代码打印不同的字符串表示.哪一个是正确的,为什么?

    String example = "Hello universe!";
    byte[] base64data = Base64.encodeBase64(example.getBytes());
    System.out.println(new String(base64data));
    System.out.println(DatatypeConverter.printBase64Binary(base64data));

    System.out.println(new String(Base64.decodeBase64(base64data), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

而我得到的结果是:

SGVsbG8gdW5pdmVyc2Uh
U0dWc2JHOGdkVzVwZG1WeWMyVWg=
Hello universe!
Run Code Online (Sandbox Code Playgroud)

java base64

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

标签 统计

java ×3

base64 ×1

bash ×1

distinct ×1

elasticsearch ×1

jackson ×1

json ×1

namespaces ×1

sbt ×1

xmlsec ×1