小编Rop*_*Rop的帖子

将 Eclipse 配置为使用 javac 而不是 ECJ 进行编译?

我在使用 javac 编译器编译的 maven 项目中遇到了一些与 java8 相关的代码,但在 Eclipse 中给出了编译错误(我认为 ECJ 编译器不同于 javac)。

我在 Eclipse-Luna 中导入它:Import => Maven => Existsing Maven Project

作为快速修复,有没有办法让 Eclipse 在 maven 项目中使用 javac(从而禁用 ECJ 编译器)?

编辑:添加编译器差异的最小 poc 示例。

此代码使用javac 编译,但 List 初始化在 Eclipse 中给出错误:“此表达式的目标类型必须是功能接口”

package test;

import static java.util.Arrays.asList;

import java.util.List;

public class Test01 {

    private static final List<MyInterface> items = asList(() -> "123", () -> "456");

    public void test01() {
        System.out.println("Hello");
    }

    public interface MyInterface {
        String value();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果添加类型转换,错误就会消失:

private …
Run Code Online (Sandbox Code Playgroud)

java eclipse javac eclipse-jdt java-8

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

jquery ajax:以正确的顺序处理typeahead事件?

我正在使用html + jquery和java rest-service后端进行webapp.我有一个带有预先输入建议的文本字段,因此用户在字段中键入的每个字符都将触发服务器往返并更新预先建议列表.

代码的基本部分:

    var showTypeaheadSuggestions = function(data) {
        // update ui-element ...
    }

    var displayFailure = function() {
        // update ui-element ...
    }

    var searchText = $("#searchText");
    var searchTextKeyup = function() {
        var txt = searchText.val();
        $.ajax({
            url : typeaheadUrl(txt),
            type : 'GET',
            dataType : 'json',
        }).done(showTypeaheadSuggestions).fail(displayFailure);
    }
    searchText.on('keyup', searchTextKeyup);
Run Code Online (Sandbox Code Playgroud)

它基本上是有效的.但我正在考虑如果你打字会发生什么,例如,2个字母"ab"(这将首先触发"a"的请求,然后是"ab"的请求)...

然后,如果"a"响应需要更长的时间来处理,并 "ab"响应之后到达,会发生什么?我是否需要在我的代码中检测到这一点,丢掉"a"响应?

http://api.jquery.com/jquery.ajax/中它确实说:

承诺回调 - .done(),. find(),.byways()和.then() - 按照它们的注册顺序被调用.

这究竟是什么意思? 我希望这意味着$ .ajax()会自动处理上述情况.

但是,当我做一个小测试(在服务器端,我只是注入了2秒睡眠延迟,只有当搜索字符串完全"A"),事实证明它并没有如我所料的行为.

预先输入列表将首先使用"ab"响应进行更新,然后当"a"响应到达时,它也会更新,因此预先输入列表会得到错误的建议.

正确处理此问题的既定方法是什么?

javascript ajax jquery typeahead

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

java RMI-service中的常见事务逻辑?

我们有几个遗留的Java服务与RMI-api,由旧的JRMP方法实现,需要'rmic'预编译.

作为将所有内容迁移到最新JDK的一部分,我还尝试将RMI内容重写为更新的方法,其中实现类从UnicastRemoteObject扩展,从而摆脱了rmic预编译步骤.

下面是一个简单的例子,如下所示:https: //www.mkyong.com/java/java-rmi-hello-world-example/ 但我无法通过提交/回滚事务逻辑找到这样的示例.

在当前的遗留代码中,所有事务逻辑都在JRMP容器代码中的单个公共方法invokeObject()中处理,该方法将在一个地方拦截所有 RMI api调用,并且如果RMI调用是如果抛出异常,则成功或回滚.

在没有JRMP容器存在的新方法中,我无法弄清楚如何做到这一点.显然,我不想将提交/回滚逻辑编码到每个api方法中(它们有很多种),但仍然将统一逻辑保存在一个地方.

任何建议,提示,参考等,如何在一个点上拦截所有RMI调用来实现事务逻辑?

java rmi jdbc rmic jrmp

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

无密码ssh-login后检查远程用户的身份?

在无密码ssh-login之后,Linux中是否有任何方法可以检索登录的远程用户的身份?

我想在登录脚本中采取一些不同的操作,具体取决于我执行ssh-login的远程主机/用户ID.

linux ssh login authorized-keys

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

guice 4.0向后兼容3.x吗?

guice 4.0向后兼容3.x吗?无法从发行说明或常见问题解答中找到它...

如果没有,是否有某个兼容性问题列表?

guice guice-3

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

(spring-boot、cxf、tomcat)内容长度与传输编码:分块?

我正在尝试重新解决一个问题。http 响应标头:Transfer-Encoding: chunked

我们在 spring-boot + 嵌入式 tomcat 中有一个 CXF-SOAP Web 服务。

SOAP 响应有一个Content-Length标头,但没有Transfer-Encoding……我猜这很正常?

不幸的是,我们有一些遗留的客户端黑客,它们似乎只适用Transfer-Encoding: chunkedContent-Length.

有没有办法强制服务器应用程序响应Transfer-Encoding: chunked

到底是什么决定了生成哪种响应格式?

它可以以某种方式配置吗?

tomcat soap cxf transfer-encoding spring-boot

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