小编Rop*_*Rop的帖子

为什么java.util.Collection没有实现新的Stream接口?

我花了一些时间开始研究关于流和lambdas的java-8嗡嗡声.让我吃惊的是,你不能应用流操作,例如.map(),.filter()直接上java.util.Collection.是否存在技术原因导致java.util.Collection接口未通过这些Stream操作的默认实现进行扩展?

谷歌搜索了一下,我看到很多人按照以下模式编码的例子:

List<String> list = someListExpression;
List<String> anotherList = list.stream().map(x -> f(x)).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

如果你的代码中有很多这些流操作,那就变得非常笨拙了.由于.stream()并且.collect()与您想表达的内容完全无关,您宁愿说:

List<String> list = someListExpression;
List<String> anotherList = list.map(x -> f(x));
Run Code Online (Sandbox Code Playgroud)

java lambda functional-programming java-8 java-stream

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

在Apache代理后面嵌入Tomcat的Spring-boot

我们在Apache SSL代理后面的专用appserver上有一个带有嵌入式Tomcat的spring-boot/spring-mvc应用程序.

代理服务器上的SSL端口为4433,转发到应用服务器上的端口8080.

所以代理服务器的URL转发如下:

https://proxyserver:4433/appname   >>forward>>   http://appserver:8080/
Run Code Online (Sandbox Code Playgroud)

运行WITHOUT代理时,首先发生的事情是
spring-security重定向请求,如:

http://appserver:8080/   >>redirect>>   http://appserver:8080/login
Run Code Online (Sandbox Code Playgroud)

以显示登录表单,通过扩展WebSecurityConfigurerAdapter

  ...
  httpSecurity.formLogin().loginPage("/login") ...
  ...
Run Code Online (Sandbox Code Playgroud)

它在没有代理的情况下工作正常,但是WITH代理需要更改重定向,因此Spring应该重定向到相应的代理URL,如:

http://appserver:8080/   >>redirect>>   https://proxyserver:4433/appname/login
Run Code Online (Sandbox Code Playgroud)

但还没有成功.

我正在尝试应用此解决方案:

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-use-tomcat-behind-a-proxy-server(59.8 在前端代理服务器后面使用Tomcat)

我们在Apache中配置了mod_proxy,并验证它是否发送了预期的头文件:

X-Forwarded-For: xxx.xxx.xxx.xxx
X-Forwarded-Host: proxyserver
X-Forwarded-Port: 4433
X-Forwarded-Proto: https
Run Code Online (Sandbox Code Playgroud)

应用程序以参数启动:

export ARG1='-Dserver.tomcat.protocol-header=x-forwarded-proto' 
export ARG2='-Dserver.tomcat.remote-ip-header=x-forwarded-for'
java $ARG1 $ARG2 -jar webapp.jar
Run Code Online (Sandbox Code Playgroud)

仍然重定向不起作用.

它将保持本地重定向, http://appserver:8080/login客户端无法使用.

我们需要做些什么来使这个场景有效吗?

编辑:此外,我担心代理URL中的"/ appname"部分.在appserver上,应用程序以"/"为根.在通过代理时,应该如何指示spring// appname应该包含在发送回客户端的所有URL中?

spring tomcat reverse-proxy spring-security spring-boot

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

cygwin ssh在退出时给出"被信号1杀死"

使用cygwin的ssh从windows登录到linux-hosts后,当退出远程shell时,我总是得到烦人的消息:

"被信号1杀死"

我用Google搜索,并意识到它无害,但仍然很烦人......有人建议你可以通过使用来消除这个消息

$ ssh -q ...

但这对我试过的任何机器都没有影响.

任何人都知道摆脱这个消息的工作解决方案?

ssh bash cygwin signals

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

Java8项目的SonarQube提供了jacoco-Exception

我刚刚下载了最新版本的SonarQube 4.3,然后尝试使用以下命令构建一个java-8项目:

  mvn clean install
  mvn sonar:sonar
Run Code Online (Sandbox Code Playgroud)

这给了我下面的例外.

谷歌搜索,我得到的印象这是一个应该修复的早期问题......?

http://sonarqube.15.x6.nabble.com/Sonar-analyze-Java-1-8-project-Failure-td5023663.html

http://jira.codehaus.org/browse/SONARJAVA-482

SonarQube 4.3是否支持java-8?

或者任何线索,有什么问题?

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
        at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
        at org.jacoco.agent.rt.internal_6effb9e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
        at org.jacoco.agent.rt.internal_6effb9e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99)
        at org.jacoco.agent.rt.internal_6effb9e.PreMain.createRuntime(PreMain.java:55)
        at org.jacoco.agent.rt.internal_6effb9e.PreMain.premain(PreMain.java:47)
        ... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
        at java.lang.Class.getField(Class.java:1690)
        at org.jacoco.agent.rt.internal_6effb9e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:136)
        ... 9 more
FATAL ERROR in native method: processing of -javaagent failed
Exception in thread "main"
Run Code Online (Sandbox Code Playgroud)

java java-8 jacoco sonarqube

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

Spring Javaconfig bean间依赖关系

浏览Spring Javaconfig参考文档 http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html 我发现了一些令人困惑的部分......

"5.12.4使用@Configuration注释"部分中,它说:

"当@Beans彼此依赖时,表达该依赖关系就像让一个bean方法调用另一个一样简单:

@Configuration
public class AppConfig {
    @Bean
    public Foo foo() {
        return new Foo(bar());
    }
    @Bean
    public Bar bar() {
        return new Bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,foo bean通过构造函数注入接收对bar的引用."

好吧,如果一切都是无状态的,那可能并不重要,但如果您有上面的配置,然后在您的应用程序中执行:

@Autowired 
private Foo foo;

@Autowired 
private Bar bar;
Run Code Online (Sandbox Code Playgroud)

检查豆的散列码,事实证明,你的私有变量会指不同的实例酒吧比一个通过使用,这可能不是你所期望的,对不对?

我想说正常模式应该是:

@Configuration
public class AppConfig {
    @Bean
    public Bar bar() {
        return new Bar();
    }
    @Autowired Bar bar;
    @Bean
    public Foo foo() {
        return new Foo(bar);
    }
} …
Run Code Online (Sandbox Code Playgroud)

spring dependency-injection spring-boot spring-java-config

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

maven scm插件 - url config-value是什么?

问题重新.Maven scm-plugin:http: //maven.apache.org/scm/plugins/usage.html

例如,在pom.xml中:

  <scm>
    <connection>scm:svn:http://somerepository.com/svn_repo/trunk</connection>
    <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection>
    <url>http://somerepository.com/view.cvs</url>
  </scm>
Run Code Online (Sandbox Code Playgroud)

<url>标签究竟用于什么?

我在这里解释了另外两个:http: //maven.apache.org/pom.html

"connection,developerConnection:两个连接元素传达了如何通过Maven连接到版本控制系统.如果连接需要Maven的读取访问权限才能找到源代码(例如,更新),developerConnection需要一个连接将提供写访问权."

但我无法找到<url>标签的目的是什么?

特别是,<url>对部署周期或部署周期有什么影响

mvn release:prepare
mvn release:perform
Run Code Online (Sandbox Code Playgroud)

命令?

谢谢,

version-control plugins release maven-scm maven

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

CXF:在同一个soap:adress上实现多个端口?

我们从客户端获得了WSDL,要求我们在我们这边实施服务.

WSDL包含3个端口绑定,具有不同的名称和绑定,但相同<soap:adress>- 如下所示:

<port name="Name1" binding="tns:Binding1">
    <soap:address location="http://localhost/Service/ServicePort" />
</port>
<port name="Name2" binding="tns:Binding2">
    <soap:address location="http://localhost/Service/ServicePort" />
</port>
<port name="Name3" binding="tns:Binding3">
    <soap:address location="http://localhost/Service/ServicePort" />
</port>
Run Code Online (Sandbox Code Playgroud)

这样的WSDL是否可以用CXF实现?

当我运行wsdl2java时,CXF会生成3个java接口.

我首先尝试了一个类实现类

class MyServiceClass implements Interface1, Interface2, Interface3 {...}
Run Code Online (Sandbox Code Playgroud)

但是当我部署它并使用SoapUI检查时,出于某种原因,它只会暴露端口绑定Interface1,并且似乎忽略了其他2个.为什么?

然后我试着实现3个不同的ServiceClasses(每个实现一个接口),然后在cxf-config.xml中放入多个<jaxws:endpoint>具有相同address属性的ServiceClasses

但是我得到了部署错误:

RuntimeException: Soap 1.1 endpoint already registered on address /Address
Run Code Online (Sandbox Code Playgroud)

任何提示,如何在CXF中实现这样的WSDL?可能吗?

soap wsdl cxf wsdl2java jax-ws

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

jdk8日期转换中的错误?

我正在为java.util.Datejava.time.LocalDateTime之间的java-8转换编写一些测试代码,发现异常似乎发生在从正常时间到夏季的转换的一小时内,当年是2038年或更高.

我只是想知道这是jdk8中的错误,还是我做错了什么?

注意:我使用的是Windows-7,64位jdk,所以不应该受到2038-unix bug的影响,这会产生更糟糕的影响.

这是我的演示代码:

package conversiontest;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;

public class ConversionTest {

    public static void main(String[] args) {
        new ConversionTest().testDateConversion();
    }

    // Method under test:
    public java.util.Date toJavaUtilDate(LocalDateTime localDateTime) {
        return java.util.Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
    }

    // Test-code:
    public void testDateConversion() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        LocalDate localDate = LocalDate.of(2016, 1, 1);
        LocalTime localTime = LocalTime.of(3, 22, 22); // 03:22:22
        while …
Run Code Online (Sandbox Code Playgroud)

java java.util.date java-8 java-time

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

Maven多模块项目如何包含gradle子项目?

我们有一个 Maven 多模块项目,我们希望逐步迁移到 gradle 项目。

对于初学者来说,我只想将几个子项目迁移到 gradle,但将它们作为子项目保留到父 maven-project 构建中。

有支持/推荐的方法吗?

指向插件的指针,或任何如何最好地做到这一点的建议表示赞赏。

gradle pom.xml maven build.gradle

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

在等宽字体中垂直对齐html-entity字符?

有时,我需要键入字符列垂直对齐的文本,最简单的方法当然是使用字体家族“等宽字体”,“ Courier”等。

不过,我注意到的是,许多html实体代码字符(表情符号等)并不总是符合此固定字体宽度,但仍比普通字符宽,并且在同一行上“压入”后续字符尽管使用等宽,但仍在右侧。

例如:

&#9825; =♡---等宽处略宽。

&#9819; =♛---等宽空间太宽。

&hearts; =♥---这遵循我的Windows笔记本电脑上的等宽宽度,但是使用android / chrome浏览时,宽度太宽了。

是否有任何修补程序/变通办法可防止这种异常行为?

我在想,是否有办法“压缩”此类字符的宽度,以确保它们都与固定的字符宽度对齐,并且最好能在不同设备上统一工作?

还是其他可行的解决方案?

html css html-entities monospace

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