小编Joh*_*ide的帖子

如何获取javascript websocket连接的当前状态

有时当我重新启动服务器或网络出现故障时,websocket会关闭,我希望能够始终获得当前的连接状态.

我基本上得到以下错误,我希望能够预测它:

WebSocket is already in CLOSING or CLOSED state. 
    (anonymous function) 
    InjectedScript._evaluateOn 
    InjectedScript._evaluateAndWrap 
    InjectedScript.evaluate
Run Code Online (Sandbox Code Playgroud)

javascript client websocket

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

Gradle:从maven存储库获取依赖项中的所有文件

我想将依赖项中可用的所有文件添加到我的工件中,以便将该依赖项上载到另一个Nexus存储库.

我的依赖包含15个文件存储在我的Nexus存储库中相同的GAV下:

myproject.jar
myproject.jar.md5
myproject.jar.sha1

myproject-sources.jar
myproject-sources.jar.md5
myproject-sources.jar.sha1

myproject.tgz
myproject.tgz.md5
myproject.tgz.sha1

myproject.pom
myproject.pom.md5
myproject.pom.sha1

maven-metadata.xml
maven-metadata.xml.md5
maven-metadata.xml.sha1
Run Code Online (Sandbox Code Playgroud)

-sources.jar文件有一个<classifier>sources</classifier>属性,tgz和pom文件有一个<extension>属性,其他没有什么特别的.

问题是我希望尽可能避免硬编码,只能将GAV参数传递给我的脚本,它可以自己处理任何GAV的所有获取和释放,无论可用的文件是什么.

我现在正在处理的解决方案是直接查询Nexus repo以获取带有这样的URL的文件列表:

http://mynexushost:8081/nexus/service/local/repositories/snapshots/content/${group}/${artifact}/${version}/

这向我发送了一个JSON(接受标头设置为application/json),其中包含我需要检索所有可用文件的URL和内容,下载它们并将它们添加到我的工件中,然后将其上传到我的目标存储库.

我很确定这个解决方案有效,但它绝对不是"Gradle方式",因为它将我与Nexus联系起来并且不使用内置的maven依赖解析实用程序.

如何在不查询Nexus API的情况下解决这个问题?

nexus gradle maven

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

避免使用.properties文件GNU Gettext Java

首先,我的问题类似于这两个问题:

JAVA gettext公用

在Java中读取.po文件时出错

  • 我想使用GNU Gettext实用程序对我的应用程序进行国际化。我设法通过创建translations.properties具有适当键值对的文件来使其工作,但是translations_fr_CA.properties即使我将语言环境显式设置为fr_CA或Locale.CANADA_FRENCH,也无法正常工作。这是我的第一个问题。

  • 第二个也是最重要的问题:由于无法使用漂亮的gettext complete msgid,因此我无法摆脱被废话的.properties文件。我设法将.po文件编译为.class,msgfmt --java2 [...]但是ResourceBundle没有.properties文件将无法加载。

这是我当前测试项目的zip文件:java_gettext_testing.zip

我将zip中包含gnu.gettext.GettextResource简化了。您可以编译javac test/*.java并运行java test.test

谢谢你的帮助!

java gnu gettext internationalization po

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

循环尝试捕获不起作用

我如何正确循环这个try catch语句?据我所知, playerIntInput = reader.nextInt();try块中的内容被执行,它会捕获异常(如果存在),这应该导致loop = false永远不会到达.然后它在catch块中输出消息,它应该循环回try并再次请求输入.相反,我只是从catch块获得一个无限循环的输出.

void CheckInput(int playerIntInput) {
    boolean loop = true;

    while(loop=true) {
        try {
            playerIntInput = reader.nextInt();
            loop = false;
        }
        catch(InputMismatchException e) {
            System.out.println("Invalid character was used, try again.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java user-input try-catch infinite-loop

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