我正在研究一组Web服务,我们希望每天都有一个旋转日志.
我试图org.apache.log4j.rolling.RollingFileAppender从log4j extras伴侣工作,因为文档表明这是最适合生产环境.
我在类路径上有主要的log4J library(log4j-1.2.15.jar)和log4j extras library(apache-log4j-extras-1.1.jar).
我在log4j.properties文件中为appender配置了以下配置:
### SOAP Request Appender
log4j.appender.request=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.request.File=SOAPmessages.log
log4j.appender.request.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.request.RollingPolicy.ActiveFileName =SOAPmessages-%d.log
log4j.appender.request.RollingPolicy.FileNamePattern=SOAPmessages-%d.log.zip
log4j.appender.request.layout = org.apache.log4j.PatternLayout
log4j.appender.request.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
Run Code Online (Sandbox Code Playgroud)
但是,当我在调试模式下使用log4j启动Web服务时,我收到以下错误消息:
log4j: Parsing appender named "request".
log4j: Parsing layout options for "request".
log4j: Setting property [conversionPattern] to [%d{ABSOLUTE} %5p %c{1}:%L - %m%n].
log4j: End of parsing for "request".
log4j: Setting property [file] to [/logs/SOAPmessages.log].
log4j:WARN Failed to set property [rollingPolicy] to value "org.apache.log4j.rolling.TimeBasedRollingPolicy".
log4j:WARN Please set …Run Code Online (Sandbox Code Playgroud) 无论如何都要检查OutputStream是否关闭而不试图写入并捕获IOException?
例如,考虑以下设计方法:
public boolean isStreamClosed(OutputStream out){
if( /* stream isn't closed */){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
你有什么可以替代/* stream isn't closed */的?
曾经有过一种方法可以做到这一点,但我不能再在Eclipse 3.4.1安装中找到它了.有谁知道如何做到这一点?
我目前正处于论文项目的研究阶段.
我的项目是移动设备的订票系统,我选择定位Android.
我预计需要一个带有中央服务器的客户端/服务器架构,因此我目前正在研究Android如何与这样的服务器进行通信.服务器将授予客户访问票务信息的权限,客户端将向票证预订发送有关票务预订的信息.我正在寻找服务器的Java EE,因为Java是我最有经验的语言.
我知道,安卓自带的java.nio和java.net,以及一些org.apache包,但我也在寻找库/技术,将有可能与Android使用.
到目前为止,我还没有在互联网上找到任何有用的东西,所以我看到了SO的建议.
具体来说,我有兴趣知道:
理想情况下,由于我的项目的重点不是服务器和客户端之间的通信,我可以使用现有的中间件来处理通信,但我已经准备好应对最糟糕的情况,即必须自己编写.
我知道一个servlet容器,比如Apache Tomcat,在JVM的单个实例中运行,这意味着它的所有servlet都将在同一个进程中运行.
我也知道servlet容器的体系结构意味着每个Web应用程序都存在于它自己的上下文中,这表明它与其他Web应用程序是隔离的.
如下所示:

接受每个Web应用程序是孤立的,我希望您可以创建相同Web应用程序的2个副本,更改每个Web应用程序的名称和上下文路径(以及任何其他相关配置),并且并行运行它们而不会影响其他.这个问题的答案似乎支持这种观点.
然而,一位同事根据他们尝试这种做法的经验不同意.
他们拿了一个Web应用程序并尝试在同一个servlet容器中运行2个单独的实例(具有不同的名称等),并且遇到了2个实例冲突的问题(由于我没有参与该工作,我无法详细说明).
基于此,他们认为,由于Web应用程序在相同的进程空间中运行,因此它们不能被隔离,诸如类属性之类的东西最终会被无意中共享.这个答案似乎暗示了同样的事情
这两个视图似乎不兼容,所以我问你: servlet容器是否阻止部署到同一容器的Web应用程序相互冲突?
如果是的话,他们是如何做到的?
如果不是,为什么会发生干扰?
最后,在什么情况下可以分离Web应用程序冲突并导致彼此干扰?,可能涉及文件系统,本机代码或数据库连接上的资源的场景?
pip install Pillow==2.9.0在virtualenv中运行时出现以下错误:error: Error -5 while decompressing data: incomplete or truncated stream
其他软件包安装/卸载很好,它似乎只影响Pillow 2.9.0.我在(或没有)的虚拟对象似乎并不重要.
下载源tarball并从中安装,但由于这是在构建服务器上,这不是一个理想的解决方法,因为我想依赖 pip install -r requirements.txt
版本:
pip --version: pip 7.1.0 from /usr/local/lib/python2.7/site-packages (python 2.7)python --version: Python 2.7.10完整的追溯是:
Collecting Pillow==2.9.0
/mnt/jenkins/jobA/workspace/.pyenv/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Exception:
Traceback (most recent call last):
File "/mnt/jenkins/jobA/workspace/.pyenv/local/lib/python2.7/site-packages/pip/basecommand.py", line 223, in …Run Code Online (Sandbox Code Playgroud) 我正在尝试为一组枚举类编写一些Java代码.
每个枚举都封装了一些概念上不同的数据,因此将它们组合起来没有意义.枚举也映射到数据库中的值,因此还共享一些与从数据库加载数据相关的常见操作,包括实例操作和静态操作.
我需要概括我所拥有的枚举类的集合,这样我就可以将这些枚举中的任何一个传递到另一个类中,该类执行和缓存与每个不同枚举相关的数据库查找.
由于缓存/查找类还将依赖于每个枚举中定义的公共和静态方法,我如何编写解决方案以便保证可以传递给类的任何枚举都具有所需的方法?
通常的方法是定义接口,但接口不允许使用静态方法.
或者,您可以使用抽象类来定义接口和一些常见的实现,但我不相信枚举是可能的(我知道枚举必须扩展Enum类并且不能扩展).
我有什么选择让我能够确保我的所有枚举实现我需要的方法?
枚举示例:
public enum MyEnum{
VALUE_ONE("my data");
VALUE_TWO("some other data");
/**
* Used when mapping enums to database values - if that sounds odd,
* it is: it's legacy stuff
*
* set via private constructor
*/
private String myValue;
//private constructor not shown
public static MyEnum lookupEnumByString(String enumValue){
//find the enum that corresponds to the supplied string
}
public String getValue(){
return myValue;
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试组合Query接口的and()和or()方法来创建一组条件,其中有2个条件列表,并且必须满足每个条件中的至少一个条件.
我阅读了这个讨论,并一直在尝试使用Query.and()来组合我的两个$或子句.
基本上,我想说:
Criteria[] arrayA;
Criteria[] arrayB;
// Programatically populate both arrays
Query q = dao.createQuery().and(
q.or(arrayA),
q.or(arrayB)
);
Run Code Online (Sandbox Code Playgroud)
我正在使用标准数组,因为我必须遍历几个不同的输入以生成我需要的特定条件,这种方法适用于我只使用单个$或者,但我不能让Morphia生成查询我希望当我尝试在$中包含$或$时,如上所述.我发现没有$和查询以及第二个$或者已经覆盖了第一个$,就像我只是简单地调用或()两次一样.
例如,我希望生成一个查询,如下所示:
{
"$and": {
"0": {
"$or": {
"0": //Some criteria,
"1": //Some criteria,
"2": //Some criteria,
}
},
"1": {
"$or": {
"0": //Some other criteria,
"1": //Some other criteria,
"2": //Some other criteria,
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我只是得到这样的查询:
{
"$or": {
"0": //Some other criteria,
"1": //Some other criteria,
"2": //Some other criteria,
}
}
Run Code Online (Sandbox Code Playgroud)
我看不到很多文档,但看看测试用例,这似乎是解决这个问题的正确方法.任何人都可以帮助解释为什么这不符合我的预期吗?
(这个问题被 …
我正在尝试实现类似于ProGit中描述的修改后的Integration-Manager工作流程.

integration manager我希望开发人员在发布代码之前在本地进行合并,而不是执行合并,我希望Quality Gateway在允许代码进入祝福之前强制执行我们的持续集成标准,例如最低级别的代码覆盖率和100%测试通过.存储库由其他开发人员检出.我们的想法是,受祝福的存储库中的代码始终满足我们定义并始终构建的最低标准.
我希望Jenkins能够执行质量网关的角色,只在构建成功时将代码推送到受祝福的存储库.
到目前为止,我已经建立了系统,以便有以下公共存储库:祝福存储库,Jenkins构建服务器上的存储库,这是通过gitosis访问的裸仓库,当然还有开发人员自己的存储库.
我让开发人员从有福的回购中撤出并推向整合回购.现在我试图让Jenkins将成功的构建从集成回购推送到受祝福的回购.
到目前为止,我已经看到了似乎类似于我想要实现的唯一选项是" Push Only If Build Succeeds"中邮的Git的Publisher设置建立在詹金斯的项目配置操作选项.但是,该选项不允许您指定push url或remote to push.
据我了解,Git的Publisher设置将推动回购詹金斯克隆到其工作区回詹金斯的公共回购,但我想推到一个不同的远程,有福库.
有没有人有任何建议我怎么能让詹金斯推进祝福的回购?
编辑0:我尝试使用Post Step来执行push命令到我的祝福存储库.这似乎有效,因为没有错误.然而,没有任何更改被推送,日志显示git认为一切都是最新的:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 7 seconds
[INFO] Finished at: Fri Nov 18 16:10:50 UTC 2011
[INFO] Final Memory: 19M/45M
[INFO] ------------------------------------------------------------------------
channel stopped
[My Project] $ /bin/sh -xe /tmp/hudson5604254372179801803.sh + git push git@example.com:my-project.git --all
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
我不知道为什么git认为没什么可推的,因为肯定有.
我有一个期望特定异常的测试,例如:
@Test(expected=MyException.class)
public void testMyMethod(){
myMethod();
}
Run Code Online (Sandbox Code Playgroud)
该myMethod()方法实际上抛出了一个子类MyException,让我们调用它MySubclassException.
无论如何使用@Test注释定义我的测试来接受子类MyException以及类本身?
我知道我可以自己编写测试检查逻辑而不使用expected捕获异常和设置标志,但我想知道JUnit是否已经支持匹配异常子类.