小编der*_*itz的帖子

与内部实现的接口 - 好的或坏的

我正在开发一个带有许多someInterface的项目 - someInterfaceImpl-pairs.前几天我得到了这个想法(可能是通过阅读一些客观的c代码来启发),将默认实现包含在内部类中.现在一些同事(都有比我更多的java经验)看到了这个想法 - 反馈是震惊和惊讶之间("这有用吗?").

我google了一下,但没有发现这个"模式"(个人我喜欢它)有用的证据: pdf-paper关于代码风格的常见问题

您如何看待 - 特别是在"默认"实现紧密耦合到接口的情况下.

更新 我发现这个:Java接口 - 实现对

(见接受的答案)

java coding-style interface

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

gwt"CssResource.style"可能的值,如何打开混淆

是否有gwt.xml的文档,包含所有可接受值的设置列表?在我的情况下,我在调试/开发环境中关闭了css混淆.但对于生产环境,我想打开它.我使用"gwt.enableDebugId"也是如此.在.gwt.xml中是真的,在-production.gwt.xml中是假的 - 这很好用.同样我想要"CssResource.style".

我到目前为止唯一发现的是值"obf",但似乎值也产生了"人类可读的类" ,例如这里.我尝试了这个值,但名字保持相当.

澄清要求:这会使css混淆:

<set-configuration-property name="CssResource.style" value="pretty"/>
Run Code Online (Sandbox Code Playgroud)

但是如何打开它?

xml gwt

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

Maven协调公共dbcp 2.0

我想使用Commons-DBCP 2.0.在官方网站上我发现:

升级到2.x的用户应该知道Java包名称已经改变,以及Maven坐标,因为DBCP 2.x与DBCP 1.x不是二进制兼容的.

但是新的坐标是什么?正如预期的那样在这里只提供1.x的.

maven apache-commons-dbcp

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

如何在使用bean的camel单元测试中注册bean?

我想对在java中使用bean配置的单个路由进行单元测试.我在骆驼的行动中读到(第6.1.4章)如何做到这一点:

protected RouteBuilder createRouteBuilder() throws Exception {
    return new myRoute();
}
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,溃败需要注册一些bean.我知道如何在独立应用程序中注册bean:请参阅此处 但是如何在"CamelTestSupport"中注册bean?有没有办法在没有注册表的情况下使用bean?可能通过注入它们(所有bean都没有arg构造函数)?我正在使用Guice,在我的测试中我使用的是Jukito(Guice + Mockito).

java junit guice apache-camel jukito

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

如何使用camel recipentList

我只是试图让一个使用RecipentList的骆驼路线工作.但首先是一个问题:两者之间有什么区别

  • Multicast/RecipentList(两者都没有并行处理)
  • 多个"到"?

在我的情况下,我希望我的一些路线并行处理.目前所有人都使用多个

在for循环中添加"to":

RouteDefinition someRoute = createSomeRout(fromPart, id); \\ method
for (String pcrfTarget : cepConfig.pcrfCepTargets()) {
    log.info("...to " + pcrfTarget);
    someRoute.to(pcrfTarget + "?mode=" + Mode.insertAddId.name());
}
Run Code Online (Sandbox Code Playgroud)

是否有直接的方法来使用recipientList并在最后添加parallelProcessing?我也尝试创建一个简单的例子,但它失败了(书籍和互联网中唯一的例子就是使用/操作标题:-().这是我的例子(错误):

public class Experiments extends CamelTestSupport {
    private static final String MOCK2 = "mock:mock2";
    private static final String MOCK1 = "mock:mock1";
    private static String PCRF_TEST_FILES;

    public Experiments() throws URISyntaxException {
        PCRF_TEST_FILES = ClassLoader.getSystemResource("pcrf-files").toURI().toString();
    }

    @Test
    public void test() throws InterruptedException {
        MockEndpoint mockIn = getMockEndpoint(MOCK1);
        MockEndpoint mockOut = getMockEndpoint(MOCK2);
        mockIn.expectedMessageCount(5);
        mockOut.expectedMessageCount(5);
        // …
Run Code Online (Sandbox Code Playgroud)

apache-camel

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

log4j2 如何禁用“日期:”查找 - log4j 抛出异常

目前似乎无法编辑提交问题


我在我的 apache 骆驼应用程序中使用 log4j2。在骆驼文件名可以这样配置"?fileName=${date:now:yyyyMMdd-HHmmss}ID.${id}.gz"

如果我将日志级别设置为调试camel 尝试记录它正在执行的操作但log4j 似乎尝试使用“date:”查找/解释字符串并抛出异常:

2014-11-24 11:29:19,218 ERROR Invalid date format: "now:yyyyMMdd-HHmmss", using default java.lang.IllegalArgumentExcepti
on: Illegal pattern character 'n'
        at java.text.SimpleDateFormat.compile(Unknown Source)
        at java.text.SimpleDateFormat.initialize(Unknown Source)
        at java.text.SimpleDateFormat.<init>(Unknown Source)
        at java.text.SimpleDateFormat.<init>(Unknown Source)
        at org.apache.logging.log4j.core.lookup.DateLookup.formatDate(DateLookup.java:60)
        at org.apache.logging.log4j.core.lookup.DateLookup.lookup(DateLookup.java:53)
        at org.apache.logging.log4j.core.lookup.Interpolator.lookup(Interpolator.java:144)
        at org.apache.logging.log4j.core.lookup.StrSubstitutor.resolveVariable(StrSubstitutor.java:1008)
        at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:926)
        at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:816)
        at org.apache.logging.log4j.core.lookup.StrSubstitutor.replace(StrSubstitutor.java:385)
        at org.apache.logging.log4j.core.pattern.MessagePatternConverter.format(MessagePatternConverter.java:71)
        at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
        at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:189)
        at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:53)
        at org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:52)
        at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:
104)
        at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
        at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:428)
        at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:407)
        at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:365)
        at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112)
        at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1347)
        at …
Run Code Online (Sandbox Code Playgroud)

apache-camel log4j2

3
推荐指数
2
解决办法
2324
查看次数

如何看到从安心发送的实际身体

我已经创建了一个jax-rs rest api并且放心地进行了测试.所有测试都是绿色的.现在我正在尝试为它创建一个html/js前端.

我的问题是我不知道我的json对象应该如何被我的其他api接受.感谢restassured/jax-rs我从未处理过请求字符串.我填写对象,我得到对象,(联合国)编组(json)是不可见的.

有什么方法可以看到(调试)由rest-assured/java创建的字符串并通过"wire"发送?

jax-rs rest-assured wildfly

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

如何设置骆驼处理器或其他路线成分的ID

Camel自动为处理器和其他东西(processor1..processor25)生成id.有没有办法设置这个名字?我们需要通过jmx识别某些处理器以获取遥测数据.

我想要设置的名称是通过属性给出的 - 它们在开始时间是已知的.所以我需要在定义路由时或在处理器内设置它们(名称是通过处理器构造函数给出的,字符串也用于处理).

更新

示例:对于路由,from("some:where").process(myProcessor).to(no:where)我需要设置myProcessor的id.我需要"ExchangesTotal"和某些处理器的其他东西

我需要一个Java DSL解决方案.

apache-camel

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

如何在 docker CMD 命令中运行多个 npm 脚本

我为 nodejs 项目创建了一个 Dockerfile。它包含一个带有许多脚本的 package.json。

"scripts": {
        "start": "npm run",
        "server": "cd server && npm start",
        "generator": "cd generator && npm start",
...
    },
Run Code Online (Sandbox Code Playgroud)

我需要运行server,并genberator在我的码头工人的形象。如何实现这一目标?

我试过:

CMD ls;npm run server ; npm run generator 这不会找到包 json 因为 shellform 似乎在/bin/sh -c.

CMD ["npm","run","server"] 也无法正常工作并且缺少第二个命令

第一次尝试中的 ls 向我展示了所有文件都已就位(包括 package.json)。

为了完整起见,有问题的项目是https://github.com/seekwhencer/node-bilder-brause(不是我的)。当前的 Dockerfile:

FROM node:14

# Create app directory
WORKDIR /usr/src/app

# Bundle app source
COPY ./* ./

RUN npm install

EXPOSE 3050
EXPOSE 3055
CMD …
Run Code Online (Sandbox Code Playgroud)

node.js npm docker

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

Firefox附加组件声明功能并在内容脚本中使用

我正在尝试编写我的第一个firefox附加组件.主要问题似乎是我也是javascript的新手.目前我有:

require('sdk/page-mod').PageMod({
    include: ["*"],
    contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
    attachTo: ["existing", "top"]
});
Run Code Online (Sandbox Code Playgroud)

(这里是答案.)现在我想使用声明的函数而不是匿名函数,但我不能让它工作:

require('sdk/page-mod').PageMod({
    include: ["*"],
    contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
    attachTo: ["existing", "top"]
});

getImgData function (e) {
    alert("blubber3");
}
Run Code Online (Sandbox Code Playgroud)

第一个问题是我通过添加函数"missing; before statement"得到语法错误.但cfx没有告诉我错误的路线.(有没有任何有用的js编辑工具,具有良好的语法检查/内容辅助?)那么如何声明一个函数并在脚本中的其他地方使用ist.最后,函数需要获取click的目标并解析它.(我阅读了教程但你的所有使用匿名函数:-P)

thx提前

javascript firefox firefox-addon firefox-addon-sdk

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