如何将多个谓词应用于java.util.Stream's
filter()
方法?
这就是我现在所做的,但我并不喜欢它.我有一些Collection
东西,我需要根据Collection
过滤器(谓词)减少事物的数量:
Collection<Thing> things = someGenerator.someMethod();
List<Thing> filtered = things.parallelStream().filter(p -> {
for (Filter f : filtersCollection) {
if (f.test(p))
return true;
}
return false;
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我知道如果我事先了解过滤器的数量,我可以这样做:
List<Thing> filtered = things.parallelStream().filter(filter1).or(filter2).or(filter3)).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
但是如何在不混合编程风格的情况下应用未知数量的谓词?知道它看起来有点难看......
我试图创建Kibana和Elasticsearch,看起来Kibana在识别Elasticsearch时遇到了麻烦.
这是我的步骤:
1)创建网络
docker network create mynetwork --driver=bridge
Run Code Online (Sandbox Code Playgroud)
2)运行Elasticsearch容器
docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch_2_4 --network mynetwork elasticsearch:2.4
Run Code Online (Sandbox Code Playgroud)
3)运行Kibana容器
docker run -i --network mynetwork -p 5601:5601 kibana:4.6
Run Code Online (Sandbox Code Playgroud)
当我通过http:// localhost:9200 /通过我的浏览器连接到Elasticsearch时,我得到一个JSON输出.
但是当我打开http:// localhost:5601 /我得到
Unable to connect to Elasticsearch at http://elasticsearch:9200.
Run Code Online (Sandbox Code Playgroud)
替代方法,
我尝试时仍然遇到类似的错误
docker run -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 kibana:4.6
Run Code Online (Sandbox Code Playgroud)
我得到错误的地方
Unable to connect to Elasticsearch at http://127.0.0.1:9200.
Run Code Online (Sandbox Code Playgroud)
我的博客帖子基于公认的答案:https://gunith.github.io/docker-kibana-elasticsearch/
我在官方回购的docker容器中运行tomcat.
docker pull tomcat
Run Code Online (Sandbox Code Playgroud)
根据主页中所述的指导原则,我运行实例并启动Tomcat服务器
docker run -it --rm -p 8888:8080 tomcat:8.0
Run Code Online (Sandbox Code Playgroud)
并且端口8888上有Tomcat服务器.当我执行以下命令时,我能够在boot2docker中获得响应
curl localhost:8888
Run Code Online (Sandbox Code Playgroud)
但是我想从我的PC中安装的Web浏览器访问该页面(它不在Virtual Box中,安装在我的Windows中).我可以吗?如果是这样的话?
我的域类具有映射到枚举的属性。奇怪的是,MyBatis 3.4.x(3.4.0 和 3.4.4。这适用于 3.3.x)与 Spring MyBatis 1.3.1 尝试将其映射到不相关的枚举并给出错误。
org.mybatis.spring.MyBatisSystemException:嵌套异常是 org.apache.ibatis.executor.result.ResultMapException:尝试从结果集中获取列“order_line_programmed”时出错。原因:java.lang.IllegalArgumentException:没有枚举常量 foo.UnlatedEnum.yes
我的域类如下所示:
public class OrderLine {
private Long id;
private Product product;
private ProgrammedStatus programmedStatus;
private String programmedFeedback;
private boolean completed = false;
}
Run Code Online (Sandbox Code Playgroud)
ProgrammedStatus 是一个简单的枚举
public enum ProgrammedStatus {
yes, no, error;
}
Run Code Online (Sandbox Code Playgroud)
正是这个programmedStatus映射到programmed列,如下所示,
<resultMap id="orderLineResult" type="foo.OrderLine">
<id property="id" column="technical_order_line_id" />
<result property="programmedStatus" column="order_line_programmed" typeHandler="org.apache.ibatis.type.EnumTypeHandler" />
<result property="programmedFeedback" column="order_line_programmed_feedback" />
<result property="completed" column="order_line_completed"
javaType="java.lang.Boolean" typeHandler="org.apache.ibatis.type.BooleanTypeHandler" />
<association property="product"
notNullColumn="order_line_product_id"
resultMap="foo.repository.mapper.ProductMapper.productResult" />
</resultMap>
Run Code Online (Sandbox Code Playgroud)
我什至尝试用 typeHandler 映射 javaType,但 MyBatis 似乎忽略了它。 …
我一直在尝试在WSO2 DSS中使用参数化CQL查询.不幸的是我没有成功.当我遇到紧急事件时,请尽快感谢您的帮助.
以下是DBS文件内容
<data name="CassParamTest">
<config id="CassDs">
<property name="org.wso2.ws.dataservice.protocol">jdbc:cassandra://localhost:9161/oneDataAux</property>
<property name="org.wso2.ws.dataservice.driver">org.apache.cassandra.cql.jdbc.CassandraDriver</property>
</config>
<query id="getEmps" useConfig="CassDs">
<sql>select employeeNumber from EMPLOYEES where employeeNumber = :employeeNumber</sql>
<param name="employeeNumber" sqlType="STRING" />
</query>
<operation name="getEmps">
<call-query href="getEmps">
<with-param name="employeeNumber" query-param="employeeNumber" />
</call-query>
</operation>
</data>
Run Code Online (Sandbox Code Playgroud)
实际上,参数employeeNumber是一个数字.但我不断收到错误.所以我尝试使用String也无济于事.我也试过了?而不是命名参数
这是我得到的错误.
当参数是String时,
<soapenv:Fault xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:axis2ns12="http://ws.wso2.org/dataservice">
<soapenv:Code>
<soapenv:Value>axis2ns12:DATABASE_ERROR</soapenv:Value>
</soapenv:Code>
<soapenv:Reason>
<soapenv:Text xml:lang="en-US" xmlns:xml="http://www.w3.org/XML/1998/namespace">DS Fault Message: Error in DS non result invoke.
DS Code: DATABASE_ERROR
Nested Exception:-
javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'SQLQuery.processNormalQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: CassParamTest …
Run Code Online (Sandbox Code Playgroud)