小编ada*_*dev的帖子

尽管在任何地方都设置了INFO,Tomcat 7日志记录仍然会发出FINE和FINER日志记录

我试图平息Tomcat 7开箱即用的大量日志记录.

对于每个请求,我都会获得这样的日志记录:

FINE: Security checking request POST /myurl
Aug 28, 2015 7:17:08 AM org.apache.catalina.authenticator.AuthenticatorBase invoke
FINE:  Not subject to any constraint
Aug 28, 2015 7:17:08 AM org.apache.catalina.core.StandardWrapper allocate
FINER:   Returning non-STM instance
Aug 28, 2015 7:17:08 AM org.apache.catalina.authenticator.AuthenticatorBase invoke
Run Code Online (Sandbox Code Playgroud)

我已将$ CATALINA_HOME/conf/logging.properties设置为此,但无济于事.

(我基本上采用了默认的日志记录属性,并将所有内容切换为信息.还添加了org.apache.catalina.level = INFO)

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.
FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

org.apache.catalina.level = INFO


1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = INFO
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost. …
Run Code Online (Sandbox Code Playgroud)

java tomcat

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

如何遍历Hashmap,打印键/值并删除Rust中的值?

这在任何语言中都应该是一项微不足道的任务.这不适用于Rust.

use std::collections::HashMap;

fn do_it(map: &mut HashMap<String, String>) {
    for (key, value) in map {
        println!("{} / {}", key, value);
        map.remove(key);
    }
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

这是编译器错误:

error[E0382]: use of moved value: `*map`
 --> src/main.rs:6:9
  |
4 |     for (key, value) in map {
  |                         --- value moved here
5 |         println!("{} / {}", key, value);
6 |         map.remove(key);
  |         ^^^ value used here after move
  |
  = note: move occurs because `map` has type `&mut std::collections::HashMap<std::string::String, std::string::String>`, which does …
Run Code Online (Sandbox Code Playgroud)

iteration hashmap mutability rust

18
推荐指数
3
解决办法
9149
查看次数

nginx反向代理到一组页面,在URL中有一个基于http referer的附加路径?

我有一个在docker容器中运行的第三方ui服务器,在端口8080上公开.

这似乎期待与绝对路径来加载资源:http://localhost:8080/index.html,http://localhost:8080/js/some_jsfiles 等等.

我想为它创建一个反向代理,所以看起来它来自不同的路径:

https://myserver.com/stormui/index.html, https://myserver.com/stormui/js/...

我先试过

location /stormui/  {
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         #rewrite ^/stormui/(.*) /$1  break;
         proxy_pass http://127.0.0.1:8080/;
}
Run Code Online (Sandbox Code Playgroud)

index.html页面加载,但浏览器仍尝试加载引用的内容而没有附加路径,因此我在index.html引用的所有javascripts等上获得404.

然后我尝试使用referer来重写位置/ {

    if ($http_referer ~ "^/stormui/.*") {
        rewrite ^/(.*) /stormui/$1  break;
    }

    root   /usr/share/nginx/html;
    index  index.html index.htm;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这也行不通.有没有办法做到这一点?

proxy reverse-proxy nginx

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

如何为包含模式的cassandra(或任何数据库)创建Dockerfile?

我想创建一个dockerfile,它可以在图像启动时使用键空间和模式构建Cassandra映像.

在一般情况下,你如何创建一个Dockerfile,将建立包括一些步骤中不能真正直到容器完成正在运行,至少在第一时间内进行拍摄?

现在,我有两个步骤:从现有的cassandra Dockerfile构建cassandra映像,该文件将带有CQL模式文件的卷映射到临时目录,然后使用cqlsh运行docker exec以在映像启动后导入模式容器.

但这不会创建一个带有架构的图像 - 只是一个容器.该容器可以保存为图像,但这很麻烦.

    docker run --name $CASSANDRA_NAME -d \
        -h $CASSANDRA_NAME \
        -v $CASSANDRA_DATA_DIR:/data \
        -v $CASSANDRA_DIR/target:/tmp/schema \
        tobert/cassandra:2.1.7
Run Code Online (Sandbox Code Playgroud)

然后

docker exec $CASSANDRA_NAME cqlsh  -f /tmp/schema/create_keyspace.cql
docker exec $CASSANDRA_NAME cqlsh  -f /tmp/schema/schema01.cql
# etc
Run Code Online (Sandbox Code Playgroud)

这有效,但它使得无法使用像Docker这样的工具,因为链接的容器/服务也将启动并期望架构到位.

我看到了一个企图在那里为试图在构建过程中Dockerfile后台启动,然后运行cqlsh卡桑德拉的过程,但我不认为工作太清楚了.

cassandra docker

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

将自定义Java安全策略文件传递给surefire maven测试失败,导致所有内容的访问控制错误

我正在尝试将自定义安全策略文件传递给surefire以运行一些测试.(具体来说,我在java.lang中添加类来测试分析器,我希望在那里定义类的权限.)

我不确定我的问题是关于安全策略,还是我正在传递给确定的args.

按照Maven的文档在这里,我有这样的插件配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.18.1</version>
        <configuration>
            <argLine>-Djava.security.manager -Djava.security.policy==java.policy</argLine>
        </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

我尝试过file://文件路径和其他变体.

注意==对语法-Djava.security.policy==java.policy是正确的,根据此Oracle文档

如果你使用

java -Djava.security.manager -Djava.security.policy == someURL SomeApp(注意双等号)然后只使用指定的策略文件; 安全属性文件中指示的所有内容都将被忽略.

这是我的安全策略文件:

grant codeBase "file:${{java.ext.dirs}}/*" {
        permission java.security.AllPermission;
};

grant {
    permission java.lang.RuntimePermission "defineClassInPackage.java.lang";
    permission java.security.AllPermission;
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
Run Code Online (Sandbox Code Playgroud)

如果我没有指定策略args,我会得到一个AccessControlError尝试在java.lang中定义一个类,如预期的那样.

如果我添加策略args,就好像我清除了所有授权策略,测试在访问文件时失败 - 我想它在尝试的第一个访问控制上失败了:

java.security.AccessControlException: access denied ("java.io.FilePermission" "/Users/me/myproj/target/surefire/surefire_03237249516701375492tmp" "read")

更新:我尝试使用没有maven/surefire的简单主类,但我仍然遇到此错误.我认为java.*可能会忽略安全策略,因为在SecureClassLoader中有一些代码:

    if ((name != null) && name.startsWith("java.")) {
        throw new SecurityException
            ("Prohibited package name: " +
             name.substring(0, name.lastIndexOf('.')));
    } …
Run Code Online (Sandbox Code Playgroud)

java security surefire maven

5
推荐指数
0
解决办法
761
查看次数

是否可以通过datastax驱动程序向Cssandra集群提交CQL脚本?

简单地说,我有一个cql脚本,我想通过cassandra提交到集群Session,而不必通过cqlsh.

我查看了他们的API,我没有看到任何内容可以用于CQL脚本,或者是一种将脚本解析为Statement可以输入cassandra的s 的方法Session.

我想我可以编写一些自己解析脚本的东西,但肯定必须存在于datastax代码中的某个地方.

java cql cassandra datastax

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

docker-machine:在某些wifi网络上没有主机到默认docker机器(使用仅限主机的vbox网络)的路由

我在OS X上运行docker-machine,它在我的家庭wifi网络(wifi-one)上工作得很好.

在另一个wifi网络(WIFI-二),我无法访问默认的机器,无论是通过搬运工机或坪.我已经尝试删除所有的docker和虚拟盒软件和缓存,并在连接wifi-two时重新安装,但无济于事.

docker-machine在虚拟盒中使用一个小vm,它使用仅主机的vbox网络(vboxnet0)在主机和vm之间进行通信.

在wifi-one上,我可以将网关ping到vboxnet0(192.168.99.1),我可以ping vm(192.168.99.100).在路由表中,我可以使用正确的界面查看到vm的路由:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            dlinkrouter        UGSc           60        2     en0
...
dlinkrouter        c0:a0:bb:xx:xx:xx  UHLWIir        66      155     en0   1180
192.168.99         link#10            UC              2        0 vboxnet
192.168.99.100     8:0:27:db:16:21    UHLWIi          2       42 vboxnet   1109
...
Run Code Online (Sandbox Code Playgroud)

在wifi-two上,我可以ping vboxnet0网关,但不能ping vm.Ping报告请求超时,但是docker-machine报告"没有到主机的路由".路由表连接到wifi-two时,显示到wifi接口(en0)上vboxnet0仅主机网络的路由,而不是vboxnet0接口.同样好奇的是默认路由是到vboxnet0网关的路由,但路由表中没有wifi路由器的标志.尽管如此,互联网连接在wifi-two上运行良好.

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.99.1       UGSc           46        0     en0
...
192.168.99         link#4             UCS             9        0     en0
192.168.99.1/32    link#4             UCS             2        0     en0
192.168.99.1       dc:9f:db:2b:89:39  UHLWIir        46       61     en0   1197
192.168.99.100 …
Run Code Online (Sandbox Code Playgroud)

networking routing virtualbox docker docker-machine

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

如何在CQL 3预处理语句中绑定IN子句值?

我有一张大致相似的桌子

create table mytable (
   id uuid,
   something text,
   primary key (id)
);
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个具有绑定in子句的预准备语句:

PreparedStatement ps = session.prepare("select * from mytable where id IN (?)");
...
UUID[] ids = { uuid1, uuid2, uuid3} ;
Run Code Online (Sandbox Code Playgroud)

无论我如何表达要绑定的id,java驱动程序都会拒绝它们.

ps.bind( /*as array*/):driver complains语句只有一个值,2提供

ps.bind( /*as comma separated string list of uuids*/):驱动程序抱怨它想要UUID.class对象,而不是字符串

ps.bind( /*as list object*/):驱动程序抱怨它想要UUID.class objs,而不是List.class对象

我真的希望司机不要期待那么多?占位符因为列表中有值,因为这意味着每次要执行它时都必须重新编写语句,Datastax文档说不要这样做!

我查看了这个com.datastax.driver.core.BoundStatement.bind()方法,并没有迹象表明其他任何东西都可行 - 没有魔术包装或任何东西.

有没有办法做到这一点?

java data-binding cql cassandra cql3

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

在角度js中,如何将数据从父控制器传递到子控制器?

我有一个小小部件,我想在一个页面上反复使用.它有自己的控制器.问题是它需要一个数据来操作(基本上是一个键),每个键都包含在父控制器中.

这是一个例子(显然是错误的)

http://plnkr.co/edit/VajgOr1LqpLDnbEJcvor?p=preview

脚本:

angular.module('myApp', [])
  .controller('ParentCtrl', ['$scope',
    function($scope) {
      $scope.keyForChartABC = "somekey1";
      $scope.keyForChartXYZ = "somekey2";
      $scope.keyForChartLALA = "somekey3";

    }
  ])
  .controller('ChartCtrl', ['$scope',
    function($scope) {
      //todo: have $scope.key assigned from parent somehow

      //not shown:  use $scope.key to pull data and format chart data
    }
  ])
Run Code Online (Sandbox Code Playgroud)

指数:

    <!-- ng-init like this is quite wrong -->
    <div    ng-init="key = keyForChartABC"
            ng-include="'chartwidget.html'"></div>
    <hr>
    <div    ng-init="key = keyForChartXYZ"
            ng-include="'chartwidget.html'"></div>
    <hr>
    <div    ng-init="key = keyForChartLALA"
            ng-include="'chartwidget.html'"></div>
Run Code Online (Sandbox Code Playgroud)

chartwidget:

<div ng-controller="ChartCtrl">
    <p>Drawing chart for data: {{key}}</p>
    <p>some …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

从文件中读取键值对并忽略#个注释行

我想从文件中读取键值对,而忽略注释行.

想象一个文件,如:

key1=value1
#ignore me!
Run Code Online (Sandbox Code Playgroud)

我想出了这个,

a)看起来非常笨重

b)如果'='没有被空格包围,它就不起作用.lineStream未正确拆分,整行被读入"key".

    std::ifstream infile(configFile);
    std::string line;
    std::map<std::string, std::string> properties;

    while (getline(infile, line)) {
        //todo: trim start of line
        if (line.length() > 0 && line[0] != '#') {
            std::istringstream lineStream(line);
            std::string key, value;
            char delim;
            if ((lineStream >> key >> delim >> value) && (delim == '=')) {
                properties[key] = value;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

另外,欢迎评论我的代码风格:)

c++ parsing

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