小编Gil*_*ili的帖子

浏览器返回带有空responseText的HTTP 200

我使用以下代码重试返回HTTP 502,503或504的操作:

/**
 * @function RetryDelayFunction
 * Returns the amount of time to wait after a failure.
 *
 * @param {Number} retries the number of times the operation has been retried
 * @return {Number} the number of milliseconds to wait before retrying the operation
 */

/**
 * @typedef {Object} RetryAjaxOptions
 *
 * @property {Number} retries the number of times to retry a failed operation
 * @param {RetryDelayFunction} delayFunction maps a failure count to a delay in milliseconds
 * @param {Array} …
Run Code Online (Sandbox Code Playgroud)

ajax jquery

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

How to rename resources in an idempotent manner?

I implemented an API that renames a company as follows:

PUT /companies/A
{
  "name": "B"
}
Run Code Online (Sandbox Code Playgroud)

will return HTTP 301 with the Location header pointing at the company's new URI: /companies/B.

How can I make this operation idempotent with and without If-Match headers?

  1. Without If-Match header: if a user tries to rename a non-existent company, I'd expect the server to return HTTP 404 but I can't do so because then legitimate rename operations wouldn't be idempotent (they'd return 301 …

rest http-put idempotent

5
推荐指数
2
解决办法
1828
查看次数

Jersey 2:如何将参数从 web.xml 传递到应用程序?

我的 Web 容器知道我的应用程序是在调试模式还是发布模式下运行。我想将此信息传递给我的 ResourceConfig/Application 类,但不清楚如何读取此信息。

是否可以通过 servlet/filter 参数传递信息?如果是这样,如何?

jax-rs jersey jersey-2.0

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

如何从jar:file URL构造路径?

如何构建Path一个jar:fileURL?

调用Paths.get(new URI("jar:file:/C:/foo.jar!/bar.html"))引发FileSystemNotFoundException(注意文件系统丢失,而不是文件本身)。

据我所知,两个文件都存在。有任何想法吗?

java uri jar

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

package.json 中的相对路径?

我有一个项目src/main/webapp/com/mycompany/frontend/page/index.js依赖于target/webjars/log4javascript/1.4.10/log4javascript.js.

我添加了package.json以下index.js内容:

{
    "browser":
        {
            "log4javascript": "../../../../../../../target/webjars/log4javascript/1.4.10/log4javascript.js"
        }
}
Run Code Online (Sandbox Code Playgroud)

我的目录中有许多其他依赖项target。有没有办法让我避免重复../../../../../../../target/每个依赖项?

json npm browserify gulp

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

如何结合使用正则表达式和代码来验证 IPv6 地址?

我想使用强调可读性的算法来验证 IPv6 地址。理想的解决方案将极其简单的正则表达式与源代码结合起来。

https://blogs.msdn.microsoft.com/oldnewthing/20060522-08/?p=31113为例:

function isDottedIPv4(s)
{
  var match = s.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/);
  return match != null &&
         match[1] <= 255 && match[2] <= 255 &&
         match[3] <= 255 && match[4] <= 255;
}
Run Code Online (Sandbox Code Playgroud)

请注意 Raymond 如何将复杂性从正则表达式转移到代码中。我想要一个对 IPv6 具有相同功能的解决方案。

javascript regex

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

为什么 javac 抱怨命名自动模块?

如果引用设置了“Automatic-Module-Name”的自动模块,为什么 Java 9 编译器会警告“module-info.java自动模块需要指令”?此类模块有什么风险?

这个问题与什么是自动模块?因为后者没有解决我引用的编译器警告背后的具体原因(问题的上下文很重要)。也就是说,这是后续阅读的有用链接。

java-9

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

什么方法声明接受有界和无界多级泛型?

鉴于:

public class Testcase {

    public static <E> List<List<E>> transform(List<List<E>> list) {
        return list;
    }

    public static <E> List<List<? extends E>> transform2(List<List<? extends E>> list) {
        return list;
    }

    public static void main(String[] args) {
        List<List<Integer>> known = new ArrayList<>();
        List<List<? extends Number>> unknown = new ArrayList<>();

        transform(known);    // works
        transform(unknown);  // fails

        transform2(known);   // fails
        transform2(unknown); // works
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器接受transform(known)但抱怨:

cannot infer type-variable(s) E
    (argument mismatch; List<List<? extends Number>> cannot be converted to List<List<E>>)
  where E …
Run Code Online (Sandbox Code Playgroud)

java bounded-wildcard

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

非阻塞速率限制的 ThreadPoolExecutor

我同时使用多个连接访问 HTTP 服务器。我想限制客户端以响应服务器表明请求来得太快。我不想更改我正在使用的 HTTP 库,而是想扩展它。

为此,我如何实现具有以下约束的ThreadPoolExecutor

  • 执行器有一个可选的速率限制。
  • 当速率限制被禁用时,它会尽快执行任务(正常行为 ThreadPoolExecutor)。
  • 启用速率限制后,它可以每秒执行最多N任务。
  • 速率限制适用于所有执行程序线程,而不是每个线程。
  • 不允许爆发。意思是,如果限制是每秒 10 个请求,我希望每 100 毫秒开始一个请求。我不希望所有线程同时触发然后在第二个剩余时间内保持空闲状态。
  • 速率限制是动态的。如果请求失败,速率会降低。如果请求成功,则速率增加。
  • 当没有任务准备好执行时,线程被认为是空闲的(考虑到速率限制)。意思是,我希望ThreadPoolExecutor标记这些线程处于空闲状态并在它认为合适的时候将它们降速,而不是阻塞线程直到达到速率限制。另一方面,一旦到了执行下一个任务的时间,线程应该再次启动。

我所研究的

java rate-limiting threadpoolexecutor

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

使用 CompletableFuture 抛出已检查的异常

Stackoverflow 包含多个有关将检查异常与CompletableFuture.

这里有一些例子:

虽然一些答案暗示使用CompletableFuture.completeExceptionally()他们的方法会导致用户代码难以阅读。

我将利用这个空间提供一个替代解决方案,以提高可读性。

请注意,这个问题特定于 CompletableFuture。这使我们能够提供不更普遍地扩展到 lambda 表达式的解决方案。

java completable-future

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