小编Rob*_*ert的帖子

获取异常org.apache.logging.slf4j.SLF4JLoggerContext无法强制转换为org.apache.logging.log4j.core.LoggerContext

使用apache-log4j-2.0.2我的代码非常简单:

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

public class Log4jtest {
  static Logger log =Logger.getLogger(Log4jtest.class);
  public static void main(String[] args) {
    BasicConfigurator.configure();
        log.debug("This is debug message");
  }

}
Run Code Online (Sandbox Code Playgroud)

但我得到的例外是:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLoggerContext cannot be          cast to org.apache.logging.log4j.core.LoggerContext``
at org.apache.log4j.Logger.getLogger(Logger.java:41)
at Log4jtest.<clinit>(Log4jtest.java:11)
Run Code Online (Sandbox Code Playgroud)

为什么异常来自一个简单的程序?

java log4j exception

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

FabricJS:始终在画布上居中对象

是否有可能始终将一个对象放在fabricjs画布上?

背景:我正在构建一个webtool,可以使用fabricjs轻松创建复杂的动画.我希望能够将画布大小设置为100%的宽度和高度.因此,我想将所有对象放在中心并为其添加X/Y偏移.当我稍后调整画布大小时,我可以使用x/y偏移从中心重新调整对象.

是否有这样的功能?或者我应该简单地向对象添加属性,如果正在调整画布大小 - 检查该属性的所有对象并从新画布中心重新调整对象的位置?

关心并感谢罗伯特

javascript html5 html5-canvas fabricjs

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

dart2js后异步函数中两个keyCodes的比较不正确

我不明白dart2js代码的这种行为.
我只在async函数中使用它,并且只在编译成JS之后.

e.keyCode is equal 13
KeyCode.ENTER is equal 13
Run Code Online (Sandbox Code Playgroud)


(e.keyCode == KeyCode.ENTER) is false
Run Code Online (Sandbox Code Playgroud)

这是调试我的问题的简单代码.
这是怎么回事?

import 'dart:html';

main() async
{
  await for(KeyboardEvent e in window.onKeyDown)
  {
    print('e.keyCode : ${e.keyCode}');
    print('e.keyCode.hashCode : ${e.keyCode.hashCode}');
    print('KeyCode.ENTER : ${KeyCode.ENTER}');
    print('KeyCode.ENTER.hashCode : ${KeyCode.ENTER.hashCode}');
    print('e.keyCode.runtimeType : ${e.keyCode.runtimeType}');
    print('KeyCode.ENTER.runtimeType : ${KeyCode.ENTER.runtimeType}');
    print('e.keyCode == KeyCode.ENTER ${e.keyCode == KeyCode.ENTER}');
    print('e.keyCode != KeyCode.ENTER ${e.keyCode != KeyCode.ENTER}');
    int a = e.keyCode;
    int b = KeyCode.ENTER;
    print('a = $a');
    print('b = $b');
    print('a.hashCode = ${a.hashCode}');
    print('b.hashCode = ${b.hashCode}');
    print('a …
Run Code Online (Sandbox Code Playgroud)

dart dart2js dart-async

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

使用 node.js 中的 socket.io 通过 webrtc 广播实时音频

我正在尝试使用 webrtc 通过 getUserMedia() 获取音频并使用 socket.io 将其发送到服务器(socket.io 支持音频、视频、二进制数据),然后服务器将其广播到所有连接的客户端。问题是当流到达连接的客户端时,它被转换为 JSON 对象而不是媒体流对象。所以我无法发送音频我也尝试过 socket.io-stream 模块,但我没有成功。你能帮我正确捕获音频流并将其发送给所有连接的客户端吗?

这是发送数据的客户端代码

navigator.getUserMedia({audio: true, video: false}, function(stream) {
  video.src = window.URL.createObjectURL(stream);
  webcamstream = stream;
  media = stream; /// here the datatype of media is mediaStream object
  socket.emit("sendaudio", media);
}, function(e){
  console.log(error);
});
Run Code Online (Sandbox Code Playgroud)

在接收客户端时,代码如下

socket.on('receiveaudio' , function(media)
{
   console.log(media); //but here i am receiving it as a simple object
   other.src= media;
});
Run Code Online (Sandbox Code Playgroud)

audio node.js socket.io webrtc getusermedia

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

MD5在C#和Java之间产生不同的结果

我有一个字节数组,我想分别在java和C#中计算MD5哈希.但是,它们产生了截然不同的结果.

下面是我的C#代码:

byte[] input = { 90, 12, 200, 139, 85, 104, 9, 202, 0, 0, 0, 0, 28, 251, 54, 201, 233, 153, 79, 1 };
MD5 md5 = MD5.Create();
byte[] result = md5.ComputeHash(input);
Run Code Online (Sandbox Code Playgroud)

它生成md5哈希:85,126,37,15,86,254,54,94,243,185,219,84,21,17,192,153,.

以下是java代码:

byte[] input = {90,12,-56,-117,85,104,9,-54,0,0,0,0,28,-5,54,-47,-23,-103,79,1};
byte[] md5 = MessageDigest.getInstance("MD5").digest(input);
Run Code Online (Sandbox Code Playgroud)

它导致: -56,-74,-89,-76,9,35,-83,-89,-73,-39,17,83,24,18,-91,-62,

如您所见,结果完全不同.我知道c#使用无符号字节,java使用有符号字节.没有办法让我相信结果是相同的.

提前致谢.

c# java md5

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