小编Bal*_*yan的帖子

泽西岛 - 如何模拟服务

我使用"Jersey测试框架"对我的webservice进行单元测试.

这是我的资源类:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

// The Java class will be hosted at the URI path "/helloworld" 

@Path("/helloworld") 
public class class HelloWorldResource {

    private SomeService service;

    @GET 
    @Produces("text/plain")
    public String getClichedMessage() {
        // Return some cliched textual content
        String responseFromSomeService = service.getSomething();
        return responseFromSomeService;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在单元测试中模拟SomeService?

java unit-testing web-services jax-rs jersey

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

使用Log4J 1.*,如何将两个包写入两个单独的文件?

我有以下两个包:

com.mycorp.project.first
com.mycorp.project.second

我想配置Log4J(SLF4J)将日志从一个包写入一个文件,并从另一个包写入第二个文件.我不希望他们混在一起.

要清楚,这是一个项目/一个进程正在运行.

我尝试过滤和使用logger但是它们似乎被log4j忽略了.两个文件总是相同的.

编辑:谢谢你到目前为止的答案,这是我得到的,它不起作用.两个输出文件都是相同的.

<configuration debug="true">
<contextName>dev</contextName>

<appender name="FIRST_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>A:/dev/LogTesting/logs/first.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>A:/dev/LogTesting/logs/first.%d{yyyyMMdd}%d{_HHmmss,aux}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{MMM dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="SECOND_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>A:/dev/LogTesting/logs/second.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>A:/dev/LogTesting/logs/second.%d{yyyyMMdd}%d{_HHmmss,aux}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <Pattern>%d{MMM dd HH:mm:ss.SSS} %property{HOSTNAME} [%thread] %level %logger{36} %msg%n</Pattern>
    </encoder>
</appender>

<!-- =============================================================== -->
<logger name="com.test.apples" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="FIRST_FILE"  />
</logger>

<logger name="com.test.oranges" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="SECOND_FILE"  />
</logger>
<!-- …
Run Code Online (Sandbox Code Playgroud)

java logging filtering log4j slf4j

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

与杰克逊的反序列化的建造者样式

要求 :

  1. 想用Builder模式
  2. 杰克逊进行反序列化
  3. 不想使用setter

我确信杰克逊的工作基于POJO上的吸气剂和制定者.既然,我有建造者模式,再没有重要的东西.在这种情况下,我们如何在Builder模式的帮助下指示jackson反序列化?

任何帮助,将不胜感激.我试过@JsonDeserialize(builder = MyBuilder.class)并且无法正常工作.

这在REST球衣中是必需的.我目前是杰克逊编组和解编的jersey-media-jackson maven模块.

java json jersey jackson deserialization

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

配置单元分区恢复

如何轻松恢复分区。这是场景:

  1. 在现有外部表“ t”上具有“ n”个分区
  2. 删除表格“ t”
  3. 重新创建表't' // //注意:相同的表,但排除了某些列
  4. 如何恢复步骤#1中表't'的'n'分区?

我可以通过编写一些脚本来手动更改表以添加“ n”分区。但这非常乏味。是否有内置的东西来恢复这些分区?

hive hql hdfs hadoop-partitioning

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