小编Ant*_*ton的帖子

我什么时候应该使用SynchronousQueue

new SynchronousQueue()
new LinkedBlockingQueue(1)
Run Code Online (Sandbox Code Playgroud)

有什么不同?什么时候应该使用SynchronousQueueLinkedBlockingQueue产能1?

java concurrency blockingqueue

54
推荐指数
4
解决办法
3万
查看次数

Java中同步部分的性能

我对synchronizedJava 中块的性能有一点争议.这是一个理论问题,不影响现实生活中的应用.

考虑单线程应用程序,它使用锁定和同步部分.这个代码是否比没有同步部分的相同代码更慢?如果是这样,为什么?我们不讨论并发性,因为它只是单线程应用程序

更新

找到有趣的 基准测试吧.但它是从2001年开始的.在最新版本的JDK中,情况可能会发生巨大变化

java concurrency performance multithreading synchronization

35
推荐指数
4
解决办法
3万
查看次数

防止在网页中复制文本

我有测验申请.机器人在聊天中提出不同的问题时,这些问题属于知识的不同领域.首先回答问题的用户,获得积分.问题是,有些用户在Google上搜索答案.我想以某种方式阻止用户从网页上回答问题和google搜索答案.

我甚至不确定,这是可能的,无论如何可能有人有任何想法

html copy-paste copy-protection

35
推荐指数
5
解决办法
8万
查看次数

Play framework/Netty不会发布socket

已经问了类似的问题,但删除了它,因为我认为我修好了,但我错了.

我在我的一个Web项目中使用Play框架.Play不会呈现主页或不返回某些静态内容文件.

第一个屏幕截图显示了firebug控制台,当服务主页时,网站的加载停留在开头. 在此输入图像描述 第二个屏幕截图显示fiddler控制台,当2个静态资源未加载时.

在此输入图像描述

最初应用程序运行正常,它必须工作5-7天,我可以看到这个问题.它很难重现,它发生在15次中,我必须删除缓存数据并重新加载页面.(在FF中按CRTL-F5).问题可以在不同机器和操作系统的大多数浏览器中重现.最初,我认为托管服务提供商存在一些问题.但我已经改变了它,问题还没有消失.

该剧的版本是1.2.5.尝试了1.2.2.Play在CentOS-5-32位上作为独立服务器运行.

我怀疑,NettyPlay框架使用了一些问题.Play使用Netty 3.5.7最终jar.

cd /proc/28761/fd
ls -l | wc -l
337
Run Code Online (Sandbox Code Playgroud)

几天打开的文件描述符的数量从140增加到350.注意,开头和后面的网站平均负载是相同的.

我可以看到很多进程打开的套接字,以后不会发布.

lrwx------ 1 root root 64 Nov 11 10:34 300 -> socket:[1079566]
lrwx------ 1 root root 64 Nov 11 10:34 301 -> socket:[1079568]
lrwx------ 1 root root 64 Nov 11 10:34 302 -> socket:[1149958]
lrwx------ 1 root root 64 Nov 11 10:34 303 -> socket:[1160807]
lrwx------ 1 root root 64 Nov 11 10:34 304 -> socket:[1160605]
lrwx------ 1 root root 64 …
Run Code Online (Sandbox Code Playgroud)

nio file-descriptor netty playframework playframework-1.x

26
推荐指数
1
解决办法
3897
查看次数

Spring MVC @RequestMapping无效

我有一个奇怪的情况,我的控制器不会被调用,除非我将调度程序servlet映射到web.xml中的/*.我已经使用RequestMapping定义了一个控制器:

@Controller  
public class UserController {

    @RequestMapping(value = "/rest/users", method = RequestMethod.GET)
    public ModelAndView getUsers(HttpServletRequest request) throws RestException {
      ...
    }  
}
Run Code Online (Sandbox Code Playgroud)

和应用程序上下文:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

    <context:component-scan base-package="com.test.rest.controller" /> 
Run Code Online (Sandbox Code Playgroud)

最后,这是在web.xml中映射的:

<servlet>
    <servlet-name>rest-servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/restContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>rest-servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

这按预期工作,即我可以向/ rest/users发出请求.但是,如果我将web.xml映射更改为:

<servlet-mapping>
    <servlet-name>rest-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我收到一个MVC错误:

WARN servlet.PageNotFound:在名为'rest-servlet'的DispatcherServlet中找不到带有URI [/ rest/users]的HTTP请求的映射.

这似乎很奇怪,因为错误表明请求被映射到dispatcher-servlet,但唯一改变的是servlet映射.

有人遇到过这种情况么?

java spring-mvc

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

WebRtc客户端到服务器的连接

我将实现Java VoiP服务器以使用WebRtc.浏览器p2p连接的实现非常简单.服务器到客户端的连接稍微有些棘手.

在快速浏览RFC之后,我写下了将Java服务器作为浏览器应该做些什么.请帮我完成下面的列表.

  1. 实现STUN服务器.服务器应该响应绑定请求和保持活动ping.
  2. 实施DTLS协议以及DTLS握手.在DTLS握手之后,共享密钥将用作SRTP和SRTCP中的密钥材料.
  3. 支持SRTP和SRTCP流的复用.SRTP和SRTCP使用相同的端口来解决NAT问题.
  4. 不确定我是否应该实施SRTCP.如果服务器没有向客户端发送SRTCP报告,我认为连接不会被破坏.
  5. 将SRTP流解码为RTP.

问题:

  1. 还有什么应该在服务器端完成吗?
  2. webRtc如何处理SRTCP报告?它是否根据SRTCP报告调整采样率/比特率?
  3. WebRtc声称将解决以下问题:

    • 丢包隐藏
    • 回声消除
    • 带宽适应性
    • 动态抖动缓冲
    • 自动增益控制
    • 降噪和抑制

    是webRtc内部还是编解码器(Opus)内部?我是否需要在服务器端执行任何操作来处理此问题,例如可变比特率等?

webrtc

7
推荐指数
1
解决办法
1796
查看次数

Eclipse 调用层次结构 lambda

我认为自 Lambda 为 Java 发布以来已经过去了 5 年。

public static void main(String[] args) {
    go();
}

private static void go() {
    Set<String> set = new HashSet<>();
    set.stream().forEach((s) -> {
        inner(s);
    });
}

private static void inner(String s) {
    inner1(s);
}

private static void inner1(String s) {

}
Run Code Online (Sandbox Code Playgroud)

当我在inner1方法上按 CTRL-ALT-H -(打开调用层次结构)时,我希望看到从 in inner1tomain方法的整个堆栈跟踪。相反,我的 staktrace 是在inner方法上修剪的。我刚刚下载了最新的 Eclipse,我认为是 2018-12 年,之前我使用的是 Mars。

在此处输入图片说明 Intellij 可以向我展示预期的调用层次结构,我真的不明白为什么 Eclipse 仍然不能做到这一点。不确定是否还有其他人在 2019 年使用 Eclipse,但也许您可以建议一个插件或其他东西。

切换到 Intellij 不是一种选择,我尝试了几次,但这个习惯很难克服。

更新

有类似的 - 所以问题

在运行时,对 …

eclipse java-8 java-stream

7
推荐指数
1
解决办法
609
查看次数

强制Eclipse忽略Java搜索的测试类

我在Eclipse项目中有以下结构

  - /src/main/java
  - /src/test/java
Run Code Online (Sandbox Code Playgroud)

当我打开调用层次结构或使用java搜索时,搜索结果包含来自/ src/test/java类的类.类型层次结构和其他搜索也是如此.

有很多单元测试,我不想在搜索结果中看到来自/ src/test/java包的类.

最简单的方法 - 简单地将其从构建路径中排除.还有调用层次结构的过滤器,但是我无法在简单的java搜索中找到它们.过滤器也依赖于名称模式,但这并不是很好.

我正在寻找更方便的方式

java eclipse

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

堆栈跟踪的Kibana + Logstash +弹性组异常

现在我安装了logstashed,我可以看到Kibana中的所有[ERROR]消息和堆栈跟踪.

但是,我想通过其堆栈跟踪对异常进行分组,以查看唯一的异常.例如,我有两个不同的NullPointerException,它们来自不同的类/代码行和1个IllegalArgumentException.此异常在日志中重复多次,我可以在Kibana中看到所有异常.

我希望看到什么,类似于此

  1. NullPointerException + trace - thwwn 78次.
  2. 另一个NullPointerException + trace - 抛出112次.
  3. IllegalArgumentException + trace - 抛出991次.

这就是fabric.io如何适用于移动崩溃/问题.可以做类似的事情吗?

elasticsearch logstash kibana

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

Jetty 8.1.1 Websocket客户端握手

我正在使用Jetty 8.1.1 Websocket客户端API.
我需要用("Sec-WebSocket-Protocol", "xsCrossfire")和更新标题("Authorization", "Basic TLVWQMZqRr2hasYnZoI=")

WebSocketClientFactory factory = new WebSocketClientFactory();
factory.start();
client = factory.newWebSocketClient();
client.getCookies().put("Sec-WebSocket-Protocol", "xsCrossfire");
client.getCookies().put("Authorization", "Basic TLVWQMZqRr2hasYnZoI=");
Future<Connection> conn = client.open(uri, (WebSocket) this);
System.out.printf("Connecting to : %s%n", uri);
Run Code Online (Sandbox Code Playgroud)

请求看起来:

Host: iltlvl262:8000\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Version: 13\r\n
Sec-WebSocket-Key: FHKTsICO2vqGCxXVwLkH4Q==\r\n
Cookie: Sec-WebSocket-Protocol=xsCrossfire\r\n
Cookie: Authorization="Basic TLVWQMZqRr2hasYnZoI="\r\n
Run Code Online (Sandbox Code Playgroud)

预期要求:

Host: iltlvl262:8000\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Version: 13\r\n
Sec-WebSocket-Key: FHKTsICO2vqGCxXVwLkH4Q==\r\n
Sec-WebSocket-Protocol: xsCrossfire\r\n
Authorization: "Basic TLVWQMZqRr2hasYnZoI="\r\n
Run Code Online (Sandbox Code Playgroud)

如何正确实现8.1.1版中的握手?

java jetty websocket

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