小编Ale*_*uch的帖子

从JUnit测试用例中找不到资源文件

摘要

我的JUnit测试没有找到执行期间所需的文件.我正在使用Maven进行依赖管理和编译.

细节

测试用例所需的所有文件都位于:src/test/resources.

例如,src/test/resources/resourceFile.txt.

要访问资源,我使用以下代码:

URL url = getClass().getResource("/resourceFile.txt").getFile();
File file = new File(url);
Run Code Online (Sandbox Code Playgroud)

但后来file.exists()回归false.而我得到的错误是:

Tests in error: 
  myJUnitTestCase(tests.MyJUnitTestClass): /home/me/workspace/Project%20Name/target/test-classes/resourceFile.txt (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

注意,以下内容给出了相同的错误(注意删除的/前缀):

URL url = getClass().getClassLoader().getResource("resourceFile.txt").getFile();
File file = new File(url);
Run Code Online (Sandbox Code Playgroud)

似乎来自的文件src/test/resources没有被复制到target/test-classes.

有任何想法吗?

以下问题没有帮助

为什么我不能在使用Maven的Junit测试运行中访问src/test/resources?

在JUnit @BeforeClass中加载属性文件

如何在Junit中处理测试数据?

软件版本

Ubuntu 12.04

Apache Maven 2.2.1

Java 1.7.0

Eclipse(面向Web开发人员的Java EE IDE)Indigo Service Release 2

(截断)Maven POM

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.groupId</groupId>
    <artifactId>artifactId</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing resourcebundle maven

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

log4j.properties文件 - 同一个类中的多个记录器

我希望log4j在我的应用程序中有两个不同的记录器,并且在他们写入尊重日志的内容之间没有"重叠".

例如:

  • Logger1写入与一组系统事件相关的INFO事件
  • Logger2写入与另一组系统事件相关的INFO事件
  • 日志中不应出现两次条目

我的log4j.properties如下:

log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n

log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)

我的Java代码如下:

public static void main(String[] args) {
    PropertyConfigurator.configure(Client.class
            .getResource("/log4j.properties"));
    xdasLogger = Logger.getLogger("xdasLogger");
    logger = Logger.getLogger(Client.class);

    logger.info("normal");
    xdasLogger.info("xdas");
}
Run Code Online (Sandbox Code Playgroud)

但我的控制台输出如下:

normal
2012-06-28 09:52:44,580 INFO  xdasLogger - xdas
xdas
Run Code Online (Sandbox Code Playgroud)

请注意,"XDAS"由两个记录loggerxdasLogger,这是不可取的.

有谁知道我需要将哪些更改放入我的log4j.properties以将控制台输出更改为以下内容?

normal
2012-06-28 09:52:44,580 INFO  xdasLogger - xdas
Run Code Online (Sandbox Code Playgroud)

解决方案(取自已接受的答案):

log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas

log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n

log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p …
Run Code Online (Sandbox Code Playgroud)

java logging log4j

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

Java Generic,包含1个类型参数和2个约束

我知道可以在Generic类定义中添加多个约束,例如:

class Example<I extends Object & Comparable<Object>>{}
Run Code Online (Sandbox Code Playgroud)

但我想要一个generic(MyGeneric),它接受另一个generic(SomeGeneric<T>)作为其类型参数,并约束该T泛型的类型参数()(例如T extends SomeClass).

重要的是,我需要知道两者的类型SomeGeneric以及SomeClass从类内部的类型(G并且T需要两者都被绑定).例如,想象一下这样的事情:

class MyGeneric<G extends SomeGeneric<T>, T extends SomeClass>
{
   public G returnSomeGenericImpl(){}
   public T returnSomeClassImpl(){}
}
Run Code Online (Sandbox Code Playgroud)

问题: 上面的工作,但我更喜欢我的班级只有一个类型参数,以使我的班级的实施者的生活更轻松.有办法做到这一点吗?

像这样的东西会很好(但这个特定的代码是不正确的):

class MyGeneric<G extends SomeGeneric<T extends SomeClass>>
{
   public G returnSomeGenericImpl(){}
   public T returnSomeClassImpl(){}
}
Run Code Online (Sandbox Code Playgroud)

如果我不清楚,我会很乐意澄清我的意图.

java generics

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

Eclipse + Maven +动态Web项目 - > Maven覆盖部署程序集

摘要

在Eclipse中,当我"Maven->更新项目配置""Maven Dependencies"从我的项目的"部署程序集"中删除时.

细节

我从一个预配置的Eclipse项目开始:File-> New-> Dynamic Web Project-> JavaServer Face v2.0 Project.为了删除"魔术",我将其转换为Maven项目:Configure-> Convert to Maven project.

pom.xml包含以下内容:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webXml>WebContent/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

然后,为了确保在部署之前将Maven依赖项复制到"WEB-INF/lib /",我将它们添加到项目的"部署程序集":项目属性 - >部署程序集.有关更多详细信息,请参阅此问题:Eclipse + Maven + JavaServer Faces - > ClassNotFoundException:StartupServletContextListener.

我知道有两个相关的问题.

问题 …

java eclipse deployment jsf maven

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

是否可以在给定百分位数值而不是原始输入的情况下绘制matplotlib箱图?

从我所看到的,boxplot()方法需要一系列原始值(数字)作为输入,然后从中计算百分位数以绘制箱线图.

我想有一种方法,通过它我可以传递百分位数并得到相应的boxplot.

例如:

假设我已经运行了几个基准测试,并且对于每个基准测试我都测量了延迟(浮点值).另外,我已经预先计算了这些值的百分位数.

因此,对于每个基准测试,我有第25,第50,第75百分位数以及最小值和最大值.

现在给出这些数据,我想绘制基准的方框图.

python matplotlib percentile boxplot python-2.7

11
推荐指数
3
解决办法
9060
查看次数

DDL生成和常规persistence.xml设置(OpenJPA)

摘要

我正在尝试运行Java Web应用程序JPA 2.0示例.该示例应用程序被写入到运行Glassfish,使用EclipseLink作为JPA提供商.我想将其转换为运行在TomEEOpenJPA作为JPA提供者,但我不能为起床,并与正在运行的任何详细的教程OpenJPA.

问题

我很难转换persistence.xml到工作OpenJPA而不是EclipseLink.更具体地说,给定的persistence.xml未指定:

  • Entity类.这些必要吗?
  • 所需的JPA提供者.容器会默认为什么吗?
  • JDBC驱动程序.如何指定"内存中"DB(仅用于初始测试目的)?

也:

细节

以下是EclipseLink persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="order" transaction-type="JTA">
        <jta-data-source>jdbc/__default</jta-data-source>
        <properties>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
            <property name="eclipselink.ddl-generation.output-mode"
                value="both" />
        </properties>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

我有以下Entity课程:

  • order.entity.LineItem
  • order.entity.LineItemKey
  • order.entity.Order
  • order.entity.Part
  • order.entity.PartKey
  • order.entity.Vendor
  • order.entity.VendorPart

  • 有谁知道OpenJPA的等效persistence.xml是什么样的?
  • 或者,如果有人能指出我的OpenJPA教程,涵盖这些问题,那将是同样好的

java jpa openjpa openejb apache-tomee

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

图形分区算法与Neo4j图数据库

我知道有一些着名的图形分区算法工具,如METIS,由karypis Lab实施(http://glaros.dtc.umn.edu/gkhome/metis/metis/overview)

但我想知道是否有任何方法来分割存储在Neo4j中的图形?或者我必须转储Neo4j的数据并手动转换节点和边缘格式以适应METIS输入格式?

partitioning graph neo4j metis

7
推荐指数
2
解决办法
2142
查看次数

加速HBase读取响应

我在Amazon XLarge实例(16Gb RAM,4核CPU)上部署了4个节点HBase v0.90.4-cdh3u3集群,其中8Gb堆-Xmx分配给HRegion服务器,2Gb用于数据节点.HMaster\ZK\Namenode位于单独的XLarge实例上.目标数据集是1亿条记录(每条记录是10个字段,100个字节).基准测试从并行100个线程同时执行.

与YCSB团队在YCSB论文中所取得的成绩相比,我对阅读延迟感到困惑.它们的吞吐量高达7000 ops/sec,延迟为15 ms(第10页,读取延迟图表).在90%读取/ 10%写入工作负载时,我无法获得高于2000 ops/sec的吞吐量.写入非常快,禁用自动提交(响应在几毫秒内),而读取延迟平均不低于70毫秒.

这些是我使用的一些HBase设置:

  • hbase.regionserver.handler.count = 50
  • hfile.block.cache.size = 0.4
  • hbase.hregion.max.filesize = 1073741824
  • hbase.regionserver.codecs = LZO
  • hbase.hregion.memstore.mslab.enabled =真
  • hfile.min.blocksize.size = 16384
  • hbase.hregion.memstore.block.multiplier = 4
  • hbase.regionserver.global.memstore.upperLimit = 0.35
  • hbase.zookeeper.property.maxClientCnxns = 100

您建议使用哪些设置来查看\ tune以加快HBase的读取速度?

benchmarking hbase latency database-performance ycsb

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

JSF 2.0应用程序的水平扩展

鉴于JavaServer Faces在服务器端本质上是有状态的,建议使用哪些方法来横向扩展JSF 2.0应用程序?

如果应用程序运行多个JSF服务器,我可以想象以下场景:

  1. 粘滞会话:将与给定会话匹配的所有请求发送到同一服务器.
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:服务器故障导致会话丢失......并且通常看起来像脆弱的架构,尤其是在重新开始时(不尝试扩展现有应用程序)
  2. 状态(会话)复制:在群集中的所有JSF服务器上复制JSF状态
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:没有扩展.cluster的总内存=最小服务器上的总内存
  3. 指示JSF(通过配置)将其状态存储在外部资源(例如运行内存非常快的数据库的另一台服务器)上,然后在需要应用程序状态时从JSF服务器访问该资源?
    • 问题:这可能吗?
  4. 指示JSF(通过配置)是无状态的?
    • 问题:这可能吗?

[编辑]

更新以回应Ravi对Sticky Sessions的建议

stateful cluster-computing web-architecture horizontal-scaling jsf-2

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

Eclipse + Maven + JavaServer Faces - > ClassNotFoundException:StartupServletContextListener

摘要

当我尝试从Eclipse(在Tomcat 7.0上)运行JSF 2.0应用程序时,我得到以下异常:

Problem: SEVERE: Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener
Run Code Online (Sandbox Code Playgroud)

细节

我正在学习使用Eclipse开发JSF应用程序.我从一个预先配置的Eclipse项目开始:File-> New-> Dynamic Web Project-> JavaServer Face v2.0 Project.使用此方法Eclipse提供所有依赖项.但我想真正了解一切是如何运作的.我想删除"魔术",所以我将我的项目转换为Maven项目:Configure-> Convert to Maven project.

然后我创建了我的pom.xml(基于http://myfaces.apache.org/build-tools/archetypes/myfaces-archetype-helloworld20/index.html),它包含以下内容:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webXml>WebContent/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

但是因为我不熟悉JSF,并且因为这是一个Eclipse"动态Web项目",所以项目结构对我来说是新的,我无法理解哪些依赖来自Maven,哪些依赖于Eclipse"魔法" ". …

java eclipse jsf tomcat maven

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

是否建议合并:JSF 2.0 + Facelets + HTML5/CCS3/JavaScript?

我最近开始使用JSF 2.0开发一个Web应用程序,但是我是Web开发的新手,并且该领域(即使在限制JVM解决方案的情况下)变得非常庞大......选择的技术数量有点压倒性的.

我的担忧/问题是,混合/整合以下技术是否可行/建议?

  • CCS3 + HTML5 + JavaScript(特别是使用Twitter Bootstrap框架)
  • JSF 2.0
  • Facelets的

如果是这样的话,在与网页设计师合作时,JSF 2.0对我来说会变得更加困难.例如,当将Web设计集成到应用程序中时,我想我将不得不做一些修改:插入JSF标记和EL表​​达式,以某种特殊方式处理JavaScript(?),处理HTML标记不兼容性(?)等.

以下问题很有帮助,但没有澄清一切:

提前致谢

html5 facelets css3 jsf-2 twitter-bootstrap

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

在gs-collections库中寻找Sorted Heap&Concurrent Queue

三个问题:

  1. 我被告知该gs-collections库包含队列实现,但我无法在http://www.goldmansachs.com/gs-collections/javadoc/5.1.0/中找到它们.他们存在吗?如果是这样,我应该看哪些课程?

  2. 同样,对于已排序的堆类

  3. (不是一个问题)有没有人有gs-collections图书馆的经验?这对我来说是全新的,所以如果您有任何关于哪些任务特别擅长的经验和建议请分享

提前致谢

java heap queue collections gs-collections

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

YCSB for VoltDB

有谁知道是否有任何YCSB客户端/驱动程序可用于对VoltDB进行基准测试?甚至任何参考出版物/博客/文章/研究项目?

我们可以将TPC工作负载用于VoltDB基准测试吗?

非常感谢大家.

cloud benchmarking microbenchmark voltdb ycsb

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