在测试我的应用程序时,我遇到了一个奇怪的问题 当我在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)
对于第一个,我得到它+0630和IDT,而第二个,我正在+0530和IST预计.
在看了@Elliott Frisch之后,我在1942年之前尝试了一个日期: -
calendar.set(1915, Calendar.APRIL, 12, 5, 34, …Run Code Online (Sandbox Code Playgroud) 我们正在尝试使用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? …
我注意到我的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
谢谢你的建议.
就异步编程而言,这可能是一个非常基本的问题,但是我尝试阅读有关该内容的信息,但找不到相同的任何资源。
假设:我对异步编程有一个总体思路:
当开始阻塞操作(网络调用,从数据库/文件读取)时,我们可以将其委派给内核线程,这将使我们的应用程序线程可用于其他作业。内核线程等待作业完成,并在作业完成时向应用程序线程提供回调。
协程:最近几天我一直在阅读有关Kotlin协程的信息。我认为明智的协程在语言上是不可知的。我一直得到的问题是:
如何suspension和continuation发生的协同例程。协程不是线程(操作系统给它们分配了处理器的一部分),而是tasks在要执行的线程上调度的。
谁一直在寻找正在执行的程序,并说此协程已达到挂起点,应将其从线程中删除。continuation应该在该线程上调度另一个需要从中重新启动的协程。至于我已经读过的Java Fibers将由a完成Fiber Scheduler,在Kotlin中是否类似?
预先感谢您的帮助。
我想用Java压缩一个字符串(一个XML文档)并将其存储在Cassandra db中varchar.我应该能够在从db读取时解压缩它.我查看了GZIP和lz4,并且都在压缩时返回一个字节数组.
我的目标是从压缩数据中获取一个字符串,该字符串也可用于解压缩并返回原始字符串.什么是最好的方法?
我们正在使用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我可以说执行请求并等待另一个线程中的响应来断言结果,或者任何其他加速它的好方法.
谢谢
当我使用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) 我有一个像这样的数组:
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意味着我使用数组不变量,我会早上好.
我在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) 如何从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拆分,
str ='123.2345.34',
预期产量123.2345和34
Str = 123,23.34.23
预期产量123,23.34和23
目标:JS函数在O(n)中基于点(从最后)拆分字符串.字符串中可能有n个,(逗号或点).