小编Mri*_*jay的帖子

Java Date时区打印不同年份的不同时区,需要解决方法

在测试我的应用程序时,我遇到了一个奇怪的问题 当我在1945年之前输入一个日期时,它会改变时区.

我有这个简单的程序来显示问题.

public static void main(String[] args) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
    Calendar calendar = Calendar.getInstance();

    System.out.println("**********Before 1945");
    calendar.set(1943, Calendar.APRIL, 12, 5, 34, 12);
    System.out.println(format.format(calendar.getTime()));
    System.out.println(calendar.getTime());

    System.out.println("**********After 1945");
    calendar.set(1946, Calendar.APRIL, 12, 5, 34, 12);
    System.out.println(format.format(calendar.getTime()));
    System.out.println(calendar.getTime());
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出如下: -

**********Before 1945
1943-04-12 05:34:12+0630
Mon Apr 12 05:34:12 IDT 1943

**********After 1945
1946-04-12 05:34:12+0530
Fri Apr 12 05:34:12 IST 1946
Run Code Online (Sandbox Code Playgroud)

对于第一个,我得到它+0630IDT,而第二个,我正在+0530IST预计.

编辑:-

在看了@Elliott Frisch之后,我在1942年之前尝试了一个日期: -

calendar.set(1915, Calendar.APRIL, 12, 5, 34, …
Run Code Online (Sandbox Code Playgroud)

javascript java timezone calendar date

18
推荐指数
3
解决办法
528
查看次数

Webflux websocketclient,如何在同一会话中发送多个请求[设计客户端库]

TL; DR;

我们正在尝试使用spring webflux WebSocket实现设计WebSocket服务器.服务器具有通常的HTTP服务器操作,例如create/fetch/update/fetchall.使用WebSockets,我们试图公开一个端点,以便客户端可以利用单个连接进行所有类型的操作,因为WebSockets就是为此目的而设计的.它是一个使用webflux和WebSockets的正确设计吗?

长版

我们正在开始一个将使用反应式网络套接字的项目spring-webflux.我们需要构建一个反应式客户端库,消费者可以使用它来连接到服务器.

在服务器上,我们收到请求,读取消息,保存并返回静态响应:

public Mono<Void> handle(WebSocketSession webSocketSession) {
    Flux<WebSocketMessage> response = webSocketSession.receive()
            .map(WebSocketMessage::retain)
            .concatMap(webSocketMessage -> Mono.just(webSocketMessage)
                    .map(parseBinaryToEvent) //logic to get domain object
                    .flatMap(e -> service.save(e))
                    .thenReturn(webSocketSession.textMessage(SAVE_SUCCESSFUL))
            );

    return webSocketSession.send(response);
}
Run Code Online (Sandbox Code Playgroud)

在客户端,当有人调用save方法并从中返回响应时,我们想要打电话server.

public Mono<String> save(Event message) {
    new ReactorNettyWebSocketClient().execute(uri, session -> {
      session
              .send(Mono.just(session.binaryMessage(formatEventToMessage)))
              .then(session.receive()
                      .map(WebSocketMessage::getPayloadAsText)
                      .doOnNext(System.out::println).then()); //how to return this to client
    });
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我们不确定,如何设计这个.理想情况下,我们认为应该有

1)client.execute应该只调用一次并以某种方式持有session.应使用相同的会话在后续调用中发送数据.

2)如何从我们进入的服务器返回响应session.receive? …

java spring spring-websocket project-reactor spring-webflux

10
推荐指数
1
解决办法
1543
查看次数

AngularJS - 如何禁用OPTION请求?

我注意到我的Angular也在每个POST请求之前创建了OPTIONS请求.

我正在使用自定义API服务进行HTTP请求处理.

app.service('ApiService', function ($http) {

/**
 * Process remote POST request to give URL with given params
 * @param {String} url
 * @param {String} POST params
 * @return {JSON}  response from server
 */
this.doHttpRequest = function (type, url, params) {
    return $http({
        method: type,
        url: url,
        data: params,
        timeout: 5000,
        headers: {
            "Content-Type": "application/json",
        }
    });
}

}); 
Run Code Online (Sandbox Code Playgroud)

问题是:

我怎样才能禁用它(配置值放在哪里)?

OPTIONS是否适合某些事情?我认为这就像"2台服务器之间的握手".

角度版本:1.2.15

谢谢你的建议.

javascript options request angularjs

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

谁负责协程的暂停和继续?

就异步编程而言,这可能是一个非常基本的问题,但是我尝试阅读有关该内容的信息,但找不到相同的任何资源。

假设:我对异步编程有一个总体思路:

当开始阻塞操作(网络调用,从数据库/文件读取)时,我们可以将其委派给内核线程,这将使我们的应用程序线程可用于其他作业。内核线程等待作业完成,并在作业完成时向应用程序线程提供回调。

协程:最近几天我一直在阅读有关Kotlin协程的信息。我认为明智的协程在语言上是不可知的。我一直得到的问题是:

如何suspensioncontinuation发生的协同例程。协程不是线程(操作系统给它们分配了处理器的一部分),而是tasks在要执行的线程上调度的。

谁一直在寻找正在执行的程序,并说此协程已达到挂起点,应将其从线程中删除。continuation应该在该线程上调度另一个需要从中重新启动的协程。至于我已经读过的Java Fibers将由a完成Fiber Scheduler,在Kotlin中是否类似?

预先感谢您的帮助。

asynchronous coroutine kotlin kotlin-coroutines

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

在java中从压缩数据中获取字符串,反之亦然

我想用Java压缩一个字符串(一个XML文档)并将其存储在Cassandra db中varchar.我应该能够在从db读取时解压缩它.我查看了GZIP和lz4,并且都在压缩时返回一个字节数组.

我的目标是从压缩数据中获取一个字符串,该字符串也可用于解压缩并返回原始字符串.什么是最好的方法?

java compression arrays string cassandra

8
推荐指数
1
解决办法
346
查看次数

使用嵌入式Cassandra加速Spring MockMvc集成测试

我们正在使用MockMvc Framework来使用JUnit测试Spring Controllers.控制器返回一个DefferedResult.

mockmvc.perform看起来像波纹管

mockMvc.perform(post("/customer")
                .accept(APPLICATION_JSON)
                .header(AUTH_TOKEN_KEY, "xyz")
                .header(FROM_KEY, "email@gmail.com")
                .content(json)
                .contentType(APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(request().asyncStarted());
Run Code Online (Sandbox Code Playgroud)

这需要很多时间.我们正在使用嵌入式cassandra,因此需要花费很多时间.

我也尝试了这个,但它也一样.

MvcResult mvcResult = mockMvc.perform(post("/customer")
            .accept(APPLICATION_JSON)
            .header(AUTH_TOKEN_KEY, "xyz")
            .header(FROM_KEY, "email@gmail.com")
            .content(json)
            .contentType(APPLICATION_JSON))
            .andReturn();

mockMvc.perform(asyncDispatch(mvcResult))
            .andExpect(status().isOk())
            .andExpect(request().asyncStarted());
Run Code Online (Sandbox Code Playgroud)

我有数百个测试,因为构建过程非常慢.

有没有办法,使用JUnit我可以说执行请求并等待另一个线程中的响应来断言结果,或者任何其他加速它的好方法.

谢谢

java junit spring-test cassandra

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

字符串扫描程序在Java中不起作用

当我使用scan.nextLine()时,输入框无法正常工作.如果是scan.next(),那就完美了.但为什么呢?我不应该使用scan.nextLine()作为字符串吗?

import java.util.Scanner;
public class Test{
public static void main(String[] args){

    Scanner scan = new Scanner(System.in);
    int x = scan.nextInt();
    System.out.println("p");
    String p = scan.nextLine();
    System.out.println("q");
    String q = scan.next();
    System.out.println("m");
    String m = scan.next();
    }  
}
Run Code Online (Sandbox Code Playgroud)

java string next java.util.scanner drjava

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

如何将数组值转换为变量

我有一个像这样的数组:

multi_arr = ["resi_spec","resi_desc"];
Run Code Online (Sandbox Code Playgroud)

所以每个数组值都被视为一个变量,我想动态地存储这些变量的一些值,如下所示:

resi_spec = "good morning"
resi_desc = "good evening";
Run Code Online (Sandbox Code Playgroud)

这样就可以将数组值转换为变量.这可能吗?

我不想像这样使用obj [resi_spec],如果我只是输入resi_spec意味着我使用数组不变量,我会早上好.

javascript variables dynamic-variables

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

从数组中获取逗号分隔的字符串

我在JS中有以下JSON.

{
   "url":"http://example.com/main.aspx",
   "report_template_id":"1",
   "interval_secs":"86400",
   "analysis_type":"lite",
   "email":"rokumar@example.com",
   "alerts":["num_domains", "med_load_time", "avg_load_time", "tot_req"]
}
Run Code Online (Sandbox Code Playgroud)

我希望删除警报列表并用逗号分隔值替换,如下所示.

{
   "url":"http://example.com/main.aspx",
    "report_template_id":"1",
    "interval_secs":"86400",
    "analysis_type":"lite",
    "email":"rokumar@example.com",
    "alerts":"num_domains,med_load_time,avg_load_time,tot_req"
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery json

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

选择来自az的随机字母

如何从az中选择一个随机字母并将其单独放入html的标题中,并使其替换之前存在的任何其他字母?我不知道我所做的工作是否可行。

function randLetter( ) {

var letters =
    ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q"
    ,"r","s","t","u","v","w","x","y","z");

var letter = letters[Math.floor(Math.random()*letters.length)];

return letter

}

$('#letter').html('letter')
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

JavaScript拆分,最后一个DOT拆分字符串"."

JavaScript拆分,

  1. str ='123.2345.34',
    预期产量123.2345和34

  2. Str = 123,23.34.23
    预期产量123,23.34和23

目标:JS函数在O(n)中基于点(从最后)拆分字符串.字符串中可能有n个,(逗号或点).

javascript string jquery

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