小编Bar*_*cki的帖子

如何从"带时区的时间戳"列中读取时区?

我无法找到一种方法来读取带时区的timestamp类型的PostgreSQL列中的时区值.

JDBC提供方法java.sql.ResultSet #getTimestamp(int,java.util.Calendar), 但我必须提供自己的日历.我看不到从我正在阅读的时间戳字段获取该日历.

我正在研究存储多个时区的时间数据的系统.我需要使用时区信息保存数据,并能够从数据库中读取该时区.

是不是没有黑客这样的可能

  • 将时区值存储在另一个字段中
  • 将日期存储为字符串,例如'Wed 17 Dec 07:37:16 1997 PST'

我正在使用JDBC 41(JDBC4 Postgresql驱动程序,版本9.4-1201),java 8.

java postgresql jdbc timestamp-with-timezone

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

如何解决假阳性声纳警告“向此类添加一些测试”

我正在使用Sonar 5.2分析用TestNG编写的Java项目。我有在类上(而不是方法上)带有@Test批注的测试类。

我的测试工作正常(testNG将所有公共方法都视为测试,每个方法都不需要@Test注释),但是声纳会产生警告

TestCases应包含测试(鱿鱼:S2187)

如果我在方法上使用@Test批注,此警告将消失。

在我看来,它像是假阳性(我的课程有测试方法)。对于testNG测试,如果类在类级别具有@Test注释并且至少具有一个公共方法,则应忽略squid:S2187规则。

这确实是squid:S2187规则中的错误,还是我缺少了什么?

编辑:我使用的是Sonar 5.2,java插件3.7在撰写本文时(2015年11月10日),我的Sonar是最新的。

java testng sonarqube

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

是否可以忽略@JsonSerialize 注释?

是否可以使用 Jackson 序列化对象,但忽略使用注释注册的自定义序列化程序@JsonSerialize(using = MyCustomSerializer.class)

理由:我想使用 Jackson 将我的对象转换为 Map,使用com.fasterxml.jackson.databind.ObjectMapper.convertValue(object,Map.class). 目前它不起作用,因为我的班级有自定义序列化程序(@JsonSerialize),但错过了反序列化程序。我需要自定义序列化器,我真的不需要也不想写反序列化器。

ObjectMapper.convertValue 使用我的序列化然后反序列化失败。

我想让 ObjectMapper 忽略@JsonSerialize 并使用默认的序列化逻辑。杰克逊有可能吗?

java serialization json jackson

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

对用户管理负责 - 删除死账

如何在Ansible中有效管理用户帐户?我想将用户帐户和证书保留在列表中.

在运行playbook时,我想从列表中创建每个帐户(这很简单).我还想删除主机上现有的帐户,但不在列表中.

现在,我想出了现有帐户列表 awk -F: '($3 >= 1000) {printf "%s\n",$1}' /etc/passwd

并将其与我的列表进行比较 - 删除不需要的帐户.

是否有更简单的方法模块可以实现开箱即用的功能?

user-management ansible

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

Java 如何为类编写不变量?

我想知道评论的确切位置以及我应该使用什么关键字,因为我似乎真的无法在网上找到示例,例如我应该这样做吗?

/**
 * @invariant invariant example
 */
 public class Example {
 } 
Run Code Online (Sandbox Code Playgroud)

java javadoc invariants

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

如何让Javamelody使用不同的端口(Spring Boot+暴露的两个HTTP端口)

我有 Spring Boot Web 应用程序。它在端口 8080 上公开 REST API。它还通过 Spring Boot 管理端点公开管理端口 8081 ( http://docs.spring.io/spring-boot/docs/current/reference/html/product-ready-monitoring.html ) 。我没有任何自定义 Tomcat 配置来实现这一点。management.port=8081我的档案里只有财产application.properties

我按照https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-app中的描述配置了 JavaMelody (我有我的自定义JavaMelodyConfiguration类,带有org.springframework.boot.web.servlet.FilterRegistrationBean寄存器net.bull.javamelody.MonitoringFilter)。

@Bean
    public FilterRegistrationBean javaMelody() {
        final FilterRegistrationBean javaMelody = new FilterRegistrationBean();
        javaMelody.setFilter(new MonitoringFilter());
        javaMelody.setAsyncSupported(true);
        javaMelody.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ASYNC);
        javaMelody.addUrlPatterns("/*");
        return javaMelody;
    }
Run Code Online (Sandbox Code Playgroud)

通过此配置,Javamelody 暴露在端口 8080(业务端口)上。我想将其移至8081(管理端口)。如何改变这一点?

我使用 Spring Boot 1.4.2.RELEASE,javamelody 1.62.0

java spring-mvc servlet-filters java-melody spring-boot

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

Docker 中通过 buildpack 构建的 Spring Boot 无法加载字体

我的 Spring Boot 应用程序在 Docker 中运行,并由gradlew bootBuildImage. 在 Docker 容器中运行时应用程序无法加载字体

Caused by: java.lang.NullPointerException
    at java.desktop/sun.awt.FontConfiguration.getVersion(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

根本原因似乎是缺少fontconfig软件包 ttf-dejavu。使用时Dockerfile,可以使用apk addyumapt-get等轻松安装这些软件包

但是https://github.com/paketo-buildpacks/spring-boothttps://github.com/paketo-buildpacks/bellsoft-liberica没有安装其他软件包的选项。

是否有构建包(或配置选项)可以构建具有字体支持的 Docker 映像?

buildpack spring-boot-gradle-plugin paketo

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

如何抑制'common-java'规则的警告

我需要临时忽略规则"单元测试的分支覆盖不足"(common-java:InsufficientBranchCoverage).

阅读http://docs.sonarqube.org/display/SONAR/Frequently+Asked+Questions我看到它SuppressWarnings应该适用于所有规则.

但任何组合

@SuppressWarnings("common-java:InsufficientBranchCoverage")
@SuppressWarnings("InsufficientBranchCoverage")
@SuppressWarnings("java:InsufficientBranchCoverage")
Run Code Online (Sandbox Code Playgroud)

不适合我.

我使用Sonar 5.0,Sonar Java插件3.0.

编辑:

可以从声纳UI中抑制(移除)该警告.我看到两个解决方案

  • 对我的质量配置文件禁用"单位测试的分支覆盖率不足"规则.缺点是,该规则对整个项目禁用,而不仅仅针对单个类

  • 在浏览问题明细时将标记问题标记为忽略.这忽略了问题的单一发生.缺点是,需要在每个声纳项目中标记问题(我们有每个分支项目).当我需要删除警告时,我必须再次在声纳UI中为每个项目执行此操作.

java sonarqube

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

无法从ansible重新启动iptables(需要交互式身份验证)

如何从Ansible重启iptables服务(为了重新加载配置文件/etc/sysconfig/iptables)

我把处理程序restart iptables定义为

service: name=iptables enabled=yes state=restarted
Run Code Online (Sandbox Code Playgroud)

但它会产生以下错误消息:

致命:[xx.xx.xx.xx]:失败!=> {"已更改":false,"failed":true,"msg":"无法停止iptables.service:需要进行交互式身份验证.\n无法启动iptables.service:需要进行交互式身份验证.\n"}

我正在努力 CentOS Linux release 7.2.1511 (Core)

iptables ansible centos7

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

如何从两个MessageProducerSpec创建Spring Integration Flow?

我正在使用Spring Integration,Java DSL(版本1.1.3)我的org.springframework.integration.dsl.IntegrationFlow定义如下

 return IntegrationFlows.from(messageProducerSpec) 
            .handle(handler) 
            .handle(aggregator) 
            .handle(endpoint) 
            .get();
    }
Run Code Online (Sandbox Code Playgroud)

messageProducerSpec 是的例子 org.springframework.integration.dsl.amqp.AmqpBaseInboundChannelAdapterSpec

我希望我的集成流程能够使用来自两个独立的消息messageProducerSpecs(两个独立的SimpleMessageListenerContainers,每个使用不同的消息ConnectionFactory).如何从多个messageProducerSpec构造integrationFlow?我看不到任何集成组件能够使用来自多个源的消息.

java spring spring-integration

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

Java NullPointerException 与截断的堆栈跟踪

我的 RabbitMQ 监听器出现以下故障。我使用 Spring Boot 1.4.1 和 Spring Integration 4.3.3 (带有 spring-boot-starter-amqp 和 spring-integration-amqp)。我还使用 RabbitMQ 3.5.7。

少量消息会在大量流量下随机出现问题(到目前为止,在本地复制它并不走运)。

令我困惑的是,堆栈跟踪并不指向我的应用程序,而只是指向框架。下面我附上完整的堆栈跟踪。这是 spring、rabbitMQ 驱动程序还是服务器中的错误?

2017-05-02 10:38:42.337 [501de2ff-cd24-4c28-8434-48bc942457d9]  WARN 1 --- [messageListenerContainer-2] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.

org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exception
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.wrapToListenerExecutionFailedExceptionIfNeeded(AbstractMessageListenerContainer.java:870)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:780)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:700)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$001(SimpleMessageListenerContainer.java:95)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$1.invokeListener(SimpleMessageListenerContainer.java:187)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.invokeListener(SimpleMessageListenerContainer.java:1187)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:681)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:1165)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:1149)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1100(SimpleMessageListenerContainer.java:95)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1312)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.messaging.MessageHandlingException: nested exception is java.lang.NullPointerException
        at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:96)
        at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:89)
        at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109)
        at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127)
        at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116) …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception stack-trace

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

注释中的Spring-restdocs字段描述

是否可以使用注释(在字段级别)为字段提供描述?

我知道我可以使用description方法

.andDo(document("index", responseFields( 
            fieldWithPath("contact").description("The user's contact details"), 
Run Code Online (Sandbox Code Playgroud)

但是我更希望将该描述与字段定义一起放在我的响应对象中。

class IndexResponse {
 //The user's contact details
 String contract;
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以生成约束描述(http://docs.spring.io/spring-restdocs/docs/current/reference/html5/#_using_constraint_descriptions_in_genic_snippets),但是它仅生成验证注释的描述。

我正在寻找来自Swagger的https://github.com/swagger-api/swagger-core/wiki/Annotations#apimodelproperty之类的东西。

spring-restdocs spring-auto-restdocs

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