小编Dav*_*sen的帖子

JUnit是否支持测试的属性文件?

我有需要在各种不同的临时环境中运行的JUnit测试.每个环境都具有不同的登录凭据或特定于该环境的其他方面.我的计划是将环境变量传递到VM中以指示要使用的环境.然后使用该var从属性文件中读取.

JUnit是否具有读取.properties文件的任何内置功能?

java junit

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

用于创建和更新Mongoid数组字段的表单

我一直在努力为具有数组字段的Mongoid模型创建表单.我希望我的表单在数组中的每个条目的文本框中.如果我正在创建一个新记录,则默认将是一个空字段(以及一些javascript以在页面上动态添加新字段).

我使用fields_for搜索了一个解决方案,但似乎更倾向于处理你有一个对象/模型数组的情况,而不是我拥有的情况,这是一个字符串数组.

我将使用一个人和一个电话号码的例子.

class Person
  include Mongoid::Document
  field :name, :type => String
  field :phone_numbers, :type => Array
end
Run Code Online (Sandbox Code Playgroud)

对于控制器,只假设典型的控制器,但在new方法中我用一个空字符串初始化phone_number数组.

这是表单代码:

  <%= form_for(@person) do |f| %>
    <div class="field">
      <%= f.label :name %><br />
      <%= f.text_field :name %>
    </div>
    <div class="field">
      <%= f.label :phone_numbers %><br />
      <% @person.phone_numbers.each do |phone_number| %>
        <%= text_field_tag "person[phone_numbers][]", phone_number %>
      <% end %>
    </div>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

一切正常.有一些我不喜欢的事情.

  • text_field_tag调用中字段的硬编码名称.
  • 使用text_field_tag而不是f.text_field
  • 感觉我应该以某种方式使用fields_for而不是这个

有没有人对如何实现这个有更好的建议?或者你认为这是正确的吗?

ruby ruby-on-rails mongodb fields-for mongoid

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

如何使用JSTL标记检查资源包密钥是否不存在?

我有一个资源文件,它有一些可选的键.如果不存在可选资源键,则设置默认值.似乎没有简单的方法来确定资源包中是否存在密钥.所以这就是我正在做的事情.

<fmt:message var="title" key="login.reg.signup.${signupForm.regfrom}.title" />
<c:if test='${fn:startsWith(title, "??")}'>
    <fmt:message var="title" key="login.reg.signup.default.title" /> 
</c:if>
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

java jsp jstl resourcebundle internationalization

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

有任何使用Terracotta开源的经验吗?

有没有人使用Terracotta的开源产品而不是他们的企业产品?具体来说,我感兴趣的是,如果没有企业工具来管理您的集群,是否值得努力使用陶土?

过度简化的使用摘要:我们是一家预算有限的小型创业公司,需要处理数百万条记录,并且每天可以扩展数十万页面浏览量.

java terracotta load-balancing

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

Geddy没有破坏点

我正在评估Geddy MVC框架node.js,我看到一个奇怪的问题 - 我的断点在调试时都没有被击中.

我正在使用WebStorm以node.js调试模式启动.

我不知道如何使用CLI命令让Geddy以调试模式启动,所以我使用的bootstrapper文件如下所示:

console.log("Starting server...")
var geddy = require("geddy/bin/cli")
console.log("Server started.")
Run Code Online (Sandbox Code Playgroud)

我在所有三行上都设置了一个断点,只有最后一个console.log被击中,所以至少我知道断点和调试工作正常.

Geddy内部require()的我的控制员也在几个地方设置了断点.这些永远不会受到影响,但控制器可以正常工作,并且HTTP请求也可以正常提供.

有没有理由为什么断点不会被Geddy击中?还有什么我可以做的吗?

debugging intellij-idea node.js webstorm geddy

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

嵌入代码后第一次加载时嵌入式视频无法在Chrome中呈现,并保存到Rails模型中

我们有一个Ruby on Rail应用程序,允许用户将大量视频嵌入代码保存到我们的数据模型中.表单允许用户输入任意数量的嵌入代码,按提交并将所有内容保存到数据库.然后,应用程序将用户重定向到包含所有嵌入代码列表的页面.

此工作流程适用于IE,Safari和Firefox.

但是,在Chrome上,首次加载页面时,页面上不会显示任何视频.我在控制台中看到以下错误,每个视频一次:

拒绝执行JavaScript脚本.在请求中找到的脚本的源代码.

在后续页面加载时,视频加载正常,并且不显示错误.

当我查看源代码时,会重新加载页面以进行视图源操作,因此我无法判断源是否按预期方式通过.

当我检查视频应该在的块上的元素时,我看到以下内容:

<iframe src="" width="400" height="225" frameborder="0">
  <html>
    <head></head>
    <body></body>
  </html>
</iframe>
Run Code Online (Sandbox Code Playgroud)

对于iframe样式嵌入代码以及YoutTube和Vimeo视频的"旧式"标记代码,都会出现这种情况.

有关:

video google-chrome ruby-on-rails

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

如何使用 OAuth2 通过 Spring 获取自定义 Principal 对象?

我有一个使用 spring-security-jwt 和 spring-security-oauth2 的 Spring Boot 应用程序。我有一个扩展 UserDetails 的自定义 User 对象和一个从 loadUserByUsername 方法返回这个对象的自定义 UserDetailsS​​ervice 。

但是,当我使用 Authentication 对象的 getPrincipal 方法并尝试强制转换到我的自定义用户对象时,它失败了,因为主体返回的是一个字符串而不是我的自定义用户对象。

我的实际目标是在每个需要自定义对象详细信息的方法调用中消除到持久层的旅程,这是最多的。

spring-security spring-boot spring-oauth2

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

如何将init.d脚本从Ubuntu/Debian Linux转换为Solaris?

我有几个init.d脚本,我用来启动一些守护进程.我在互联网上找到的大多数这些脚本都使用start-stop-daemon.我的理解是"start-stop-daemon"是一个特定于Linux或BSD发行版的命令,在Solaris上不可用.

将init.d脚本从Linux转换为Solaris的最佳方法是什么?是否有一个命令等同于我可以使用的start-stop-daemon,粗略?

由于我不是一个Solaris用户,所以我愿意承认我甚至不知道我的问题本身是否无效.

linux shell solaris init.d

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

如何清理使用.create(OnSubscribe)方法创建的Observable

我有以下代码,Observable使用该Observable.create(OnSubscribe)方法创建自定义:

public class Main {

    public static void main(String[] args) {
        Subscription subscription = Observable
                .create(subscriber -> {
                    Timer timer = new Timer();
                    TimerTask task = new TimerTask() {

                        @Override
                        public void run() {
                            subscriber.onNext("tick! tack!");
                        }
                    };
                    timer.scheduleAtFixedRate(task, 0L, 1000L);
                })
                .subscribe(System.out::println);

        new Scanner(System.in).nextLine();
        System.err.println("finishing");

        subscription.unsubscribe();
    }
}
Run Code Online (Sandbox Code Playgroud)

Observable每秒使用一个计时器发出一个字符串.当用户按下回车键时,订阅将被取消.

但是,计时器仍然执行.我该如何取消计时器?我想某处必须有一个钩子,但我找不到它.

在.NET上,该create方法将返回一个IDisposable我可以作为我的实现来停止计时器.我不知道如何将它映射到RxJava,因为它的subscribe方法是void.

java rx-java

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

如何输出从Hapi.js视图生成的视图编译器错误?

来自express的世界,如果编译Jade模板时出错,则错误会输出到浏览器,其中包含模板错误的详细信息,包括行号.当视图模板编译器遇到错误时,我希望在Hapi.js中看到此级别的错误详细信息.

相反,使用Hapi.js,我收到500内部服务器错误.我在日志中看到的唯一输出如下:

150511/005652.910, [response], http://localhost:3000: get /abc123 {} 500 (24ms)
Run Code Online (Sandbox Code Playgroud)

这是我的设置的基础知识.


var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({ port: 3000 });

server.views({
  engines: { jade: require('jade') },
  path: __dirname + '/views',
  compileOptions: {
    pretty: true,
    debug: true,
    compileDebug: true
  }
});

server.route({
  method: 'GET',
  path: '/{name}',
  handler: function (request, reply) {
    reply.view('page', {name: request.params.name});
  }
});

// I know putting my plugins in an array is not necessary but I like it.
var plugins = [{
  register: …
Run Code Online (Sandbox Code Playgroud)

node.js hapijs pug

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

Android Studio错误➡无法运行程序"git"... CreateProcess error = 2,系统找不到指定的文件

在Android Studio for Windows上导入之前在Mac OS X或Linux上设置的项目时,gradle build会产生错误:

-->Error:(12, 0) CreateProcess error=2, The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

要么

Error:(12, 0) A problem occurred evaluating project ':app'.
> Cannot run program "git" (in directory "<project path>"): CreateProcess error=2, The system cannot find the file specified`
Run Code Online (Sandbox Code Playgroud)

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.14.1'
    }
}

def project
def  var

//Error line pointing out below line 

var = project.ext.gitHash = "git rev-parse --short HEAD".execute().text.trim() var --> Error:(12,0)

apply …
Run Code Online (Sandbox Code Playgroud)

git android android-studio android-gradle-plugin

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