小编Oll*_*rds的帖子

如何使用Jackson对一系列对象进行反序列化

杰克逊的数据绑定的文档表明,杰克逊支持deserialising"所有支持类型的数组",但我想不通这个确切的语法.

对于单个对象,我会这样做:

//json input
{
    "id" : "junk",
    "stuff" : "things"
}

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);
Run Code Online (Sandbox Code Playgroud)

现在对于一个数组我想这样做:

//json input
[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]

//Java
List<MyClass> entries = ?
Run Code Online (Sandbox Code Playgroud)

有人知道是否有一个神奇的缺失命令?如果没有那么解决方案是什么?

java json jackson

711
推荐指数
9
解决办法
56万
查看次数

为什么Javascript负数不总是真或假?

-1 == true;        //false
-1 == false        //false
-1 ? true : false; //true
Run Code Online (Sandbox Code Playgroud)

谁能解释一下上面的输出?我知道我可以通过比较0来解决这个问题,但我很感兴趣.我希望至少有一个草率的equals语句是真实的,因为它们进行了隐式类型转换,我当然没想到三元组会得出完全不同的结果.

javascript boolean-logic bitwise-operators

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

如何在具有正确组的docker容器中将docker socket作为卷安装

我想在docker容器中运行Jenkins实例.

我希望Jenkins本身能够将docker容器作为从属设备来运行测试.

似乎最好的方法是使用

docker run -v /var/run.docker.sock:/var/run/docker.sock -p 8080:8080 -ti my-jenkins-image
Run Code Online (Sandbox Code Playgroud)

资源

Dockerfile我使用的是

FROM jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

USER root
RUN apt-get update && apt-get install -y docker.io
RUN usermod -aG docker jenkins
USER jenkins
Run Code Online (Sandbox Code Playgroud)

如果我在正在运行的容器中启动一个bash会话并运行docker info我的图像,我得到了

$ docker info
FATA[0000] Get http:///var/run/docker.sock/v1.18/info: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
Run Code Online (Sandbox Code Playgroud)

如果我以root身份运行bash会话

docker exec -u 0 -ti cocky_mccarthy bash
root@5dbd0efad2b0:/# docker info
Containers: 42
Images: …
Run Code Online (Sandbox Code Playgroud)

jenkins docker dockerfile jenkins-docker

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

如何对XSLT模板的输出进行第二次转换

我只有基本的XSLT技能,所以如果这是基本的或不可能的道歉.

我有一个paginator模板,可以在我正在查看的网站上的任何地方使用.有一个错误,一个特定的搜索需要将一个categoryId参数附加到页面链接的href.我不能改变paginator样式表,否则我只会添加一个param.我想要做的是按原样应用模板,然后根据其输出进行第二次转换.这可能吗?其他人通常如何扩展库模板?

到目前为止,我已经考虑过对输出进行递归复制,并在处理时将模板应用于hrefs.这种语法有点让我感到厌烦,特别是因为我甚至不确定它是否可行.


编辑 - 在Dabbler的回答和Michael Kay的评论之间,我们到了那里.这是我的完整测试.

 <xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:ext="http://exslt.org/common">
    <!-- note we require the extensions for this transform -->

    <!--We call the template to be extended here and store the result in a variable-->
    <xsl:variable name="output1">
            <xsl:call-template name="pass1"/>
    </xsl:variable>

    <!--The template to be extended-->
    <xsl:template name="pass1">
            <a href="url?param1=junk">foo</a>
    </xsl:template>

    <!--the second pass. we lock this down to a mode so we can control when it is applied-->
    <xsl:template match="a" mode="pass2">
            <xsl:variable name="href" select="concat(@href, '&amp;', 'catid', '=', …
Run Code Online (Sandbox Code Playgroud)

xslt

16
推荐指数
2
解决办法
8465
查看次数

如何在包装Firebug(或类似的)控制台api时访问行号

我已经包装了控制台API,以提供精细的日志记录级别以及其他一些糖功能.

这很好,唯一的问题是firebug(或其他任何控制台)将始终报告日志来自控制台API本身的行号.

你怎么建议我让控制台记录我调用包装函数的行号?

我更喜欢跨浏览器解决方案,但没有一个firebug插件可能是一个良好的开端.

我这样称呼我的登录功能:

db.log(db.LogLevel.WARN, "Blah Blah Blah");
Run Code Online (Sandbox Code Playgroud)

javascript console firebug logging line-numbers

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

配置Spring TextEncryptor以在Heroku上使用的正确方法是什么

我有一个像这样定义的Spring TextEncryptor

<bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors"
                                                  factory-method="text">
        <constructor-arg value="${security.encryptPassword}" />
        <constructor-arg value="${security.encryptSalt}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

哪些是这些属性

security.encryptPassword=47582920264f212c566d5e5a6d
security.encryptSalt=39783e315e6a207e733d6f4141
Run Code Online (Sandbox Code Playgroud)

哪个在我的本地环境中工作正常.当我部署到Heroku时,我得到了

java.lang.IllegalArgumentException: Unable to initialize due to invalid secret key
at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:110)
at org.springframework.security.crypto.encrypt.AesBytesEncryptor.encrypt(AesBytesEncryptor.java:65)
at org.springframework.security.crypto.encrypt.HexEncodingTextEncryptor.encrypt(HexEncodingTextEncryptor.java:36)
...
Caused by: java.security.InvalidKeyException: Illegal key size
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:972)
at javax.crypto.Cipher.implInit(Cipher.java:738)
at javax.crypto.Cipher.chooseProvider(Cipher.java:797)
at javax.crypto.Cipher.init(Cipher.java:1276)
at javax.crypto.Cipher.init(Cipher.java:1215)
at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:105)
... 53 more
Run Code Online (Sandbox Code Playgroud)

所以我尝试了一些较小的键,但我总是遇到同样的问题.在Heroku上使用的密钥大小是多少?

heroku spring-security

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

如何在spring webapp中从命令行覆盖属性

我有这个属性设置

<bean id="preferencePlaceHolder"
      class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
    <property name="locations" ref="propertiesLocations" />
</bean>
<beans profile="dev, testing">
    <util:list id="propertiesLocations">
        <value>classpath:runtime.properties</value>
        <value>classpath:dev.properties</value>
    </util:list>
</beans>
...
Run Code Online (Sandbox Code Playgroud)

runtime.properties中有一个属性,如此

doImportOnStartup=false
Run Code Online (Sandbox Code Playgroud)

我想偶尔这样做

mvn jetty:run -DdoImportOnStartup=true
Run Code Online (Sandbox Code Playgroud)

并使系统属性优先.我怎样才能做到这一点?谢谢.

spring properties

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

使netbeans将maven源附加到工件

我在第三方库中遇到了一些问题,我想介入其中.右键单击库节点时,Netbeans提供"下载源"选项.这会正确地从svn下载源,源图标附加到依赖节点,所有都是桃子.但是,当我打开其中一个类时,它会给我一个生成的骨架,就像没有附加源一样.此外,当存在maven源时,似乎没有选择手动附加本地源,因此我无法解决此问题.

其他人对此功能的体验是什么?

仅供参考,有问题的图书馆是免费的3.1.0 http://www.igniterealtime.org/projects/smack/index.jsp

maven-2 netbeans

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

如何从ejabberd的muc重新申请房间名单和历史

当用户加入ejabberd MUC时,服务器将向用户发送完整的房间名单和聊天记录.

在我的基于Web的客户端中,我需要在页面重新加载时保留房间.我的问题是,当页面被卸载时,我会丢失初始信息.

ATM我正在通过将名册和房间历史序列化为json并将其存储在cookie中来解决这个问题.然而,这是一个非常糟糕的主意(tm),因为我可以很快超过4k一般cookie限制的房间有很多用户.

所以问题是:如何重新请求服务器在加入时发送用户的信息,而不实际重新加入MUC?

名单的一种方法是发送带有"http://jabber.org/protocol/disco#items"命名空间的查询iq,但这不完整,因为它不提供在线信息或任何扩展信息(如真实的非匿名房间的jids)

cookies xmpp ejabberd strophe multiuserchat

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

如何在 Maven 多模块构建中有效地声明提供的范围依赖项?

我有一个 Maven 多模块 pom,它构建了一场战争。我想在父 pom.xml 中声明对 jsp-api 的提供范围依赖。Maven 文档建议声明为提供的依赖项不可传递,因此:

因此,我是否需要遍历所有子模块 pom 并声明提供的依赖项?项目中有大约 40 个模块,目前还不清楚哪些模块需要依赖项,所以这似乎需要付出很大的努力才能实现,而且我很懒。您在项目中如何处理这种情况?

- 编辑 -

因此,对于其他人来说,发生这种情况是因为父 pom 在 dependencyManagment 部分中定义了所有依赖项。我以前没有遇到过这种情况,但它有助于减少具有排除或其他重要属性的复杂依赖项的重复。它还覆盖继承机制。据我了解,一个好的经验法则是仅使用它来解决问题,而不是像该 pom 的作者所做的那样将所有依赖项都扔在那里。也许合适的 Maven 专家可以证实这一点。

maven

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

如何为JPA manyToMany连接添加防护

我的JPA测试应用程序跟踪用户在我镇中访问过的酒吧数量.我在用户对象上有这个

@ManyToMany(mappedBy = "users")
private List<Pub> visited;
Run Code Online (Sandbox Code Playgroud)

而pub对象的另一面

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
    joinColumns =
@JoinColumn(name = "pubid"),
inverseJoinColumns =
@JoinColumn(name = "userid"))
protected Set<User> users;
Run Code Online (Sandbox Code Playgroud)

但是,我更新了pub表,其中有一列表明该pub已被关闭.我只希望用户的访问列表包含活动的pubs所以问题是

如何有条件地连接这些对象,以便只有通过测试的pub(例如table.closed = false)才会被放入用户的访问列表中?

我正在使用hibernate和postgres.

java hibernate jpa

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