摘要
我的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?
软件版本
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) 我希望log4j
在我的应用程序中有两个不同的记录器,并且在他们写入尊重日志的内容之间没有"重叠".
例如:
我的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"由两个记录logger
和xdasLogger
,这是不可取的.
有谁知道我需要将哪些更改放入我的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) 我知道可以在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)
如果我不清楚,我会很乐意澄清我的意图.
摘要
在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.
我知道有两个相关的问题.
问题 …
从我所看到的,boxplot()
方法需要一系列原始值(数字)作为输入,然后从中计算百分位数以绘制箱线图.
我想有一种方法,通过它我可以传递百分位数并得到相应的boxplot
.
例如:
假设我已经运行了几个基准测试,并且对于每个基准测试我都测量了延迟(浮点值).另外,我已经预先计算了这些值的百分位数.
因此,对于每个基准测试,我有第25,第50,第75百分位数以及最小值和最大值.
现在给出这些数据,我想绘制基准的方框图.
摘要
我正在尝试运行Java Web应用程序JPA 2.0示例.该示例应用程序被写入到运行Glassfish
,使用EclipseLink
作为JPA提供商.我想将其转换为运行在TomEE
与OpenJPA
作为JPA提供者,但我不能为起床,并与正在运行的任何详细的教程OpenJPA
.
问题
我很难转换persistence.xml
到工作OpenJPA
而不是EclipseLink
.更具体地说,给定的persistence.xml
未指定:
Entity
类.这些必要吗?也:
细节
以下是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
题
我知道有一些着名的图形分区算法工具,如METIS,由karypis Lab实施(http://glaros.dtc.umn.edu/gkhome/metis/metis/overview)
但我想知道是否有任何方法来分割存储在Neo4j中的图形?或者我必须转储Neo4j的数据并手动转换节点和边缘格式以适应METIS输入格式?
我在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设置:
您建议使用哪些设置来查看\ tune以加快HBase的读取速度?
鉴于JavaServer Faces在服务器端本质上是有状态的,建议使用哪些方法来横向扩展JSF 2.0应用程序?
如果应用程序运行多个JSF服务器,我可以想象以下场景:
[编辑]
更新以回应Ravi对Sticky Sessions的建议
stateful cluster-computing web-architecture horizontal-scaling jsf-2
摘要
当我尝试从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"魔法" ". …
我最近开始使用JSF 2.0开发一个Web应用程序,但是我是Web开发的新手,并且该领域(即使在限制JVM解决方案的情况下)变得非常庞大......选择的技术数量有点压倒性的.
我的担忧/问题是,混合/整合以下技术是否可行/建议?
如果是这样的话,在与网页设计师合作时,JSF 2.0对我来说会变得更加困难.例如,当将Web设计集成到应用程序中时,我想我将不得不做一些修改:插入JSF标记和EL表达式,以某种特殊方式处理JavaScript(?),处理HTML标记不兼容性(?)等.
以下问题很有帮助,但没有澄清一切:
提前致谢
三个问题:
我被告知该gs-collections
库包含队列实现,但我无法在http://www.goldmansachs.com/gs-collections/javadoc/5.1.0/中找到它们.他们存在吗?如果是这样,我应该看哪些课程?
同样,对于已排序的堆类
(不是一个问题)有没有人有gs-collections
图书馆的经验?这对我来说是全新的,所以如果您有任何关于哪些任务特别擅长的经验和建议请分享
提前致谢
有谁知道是否有任何YCSB客户端/驱动程序可用于对VoltDB进行基准测试?甚至任何参考出版物/博客/文章/研究项目?
我们可以将TPC工作负载用于VoltDB基准测试吗?
非常感谢大家.
java ×7
maven ×3
benchmarking ×2
eclipse ×2
jsf ×2
jsf-2 ×2
ycsb ×2
apache-tomee ×1
boxplot ×1
cloud ×1
collections ×1
css3 ×1
deployment ×1
facelets ×1
generics ×1
graph ×1
hbase ×1
heap ×1
html5 ×1
jpa ×1
junit ×1
latency ×1
log4j ×1
logging ×1
matplotlib ×1
metis ×1
neo4j ×1
openejb ×1
openjpa ×1
partitioning ×1
percentile ×1
python ×1
python-2.7 ×1
queue ×1
stateful ×1
tomcat ×1
unit-testing ×1
voltdb ×1