我下载了一个新的JSch 0.1.53库,并且JSch(sftp)下载任务不再有效.此版本在session.connect()函数抛出错误时失败Session.connect: java.io.IOException: End of IO Stream Read.
我的旧jsch.jar(2011-10-06)对同一主机工作正常,也许我错过了一个新的配置道具?
Session session=null;
ChannelSftp channel=null;
try {
JSch.setLogger(SSHUtil.createJschLogger());
JSch jsch=new JSch();
session=jsch.getSession("myuser", "11.22.33.44", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("mypwd");
session.connect(2000); // <-- FAILS HERE
channel = (ChannelSftp)session.openChannel("sftp");
channel.connect(2000);
...
Run Code Online (Sandbox Code Playgroud)
这是一个广泛的JSch日志记录,表明正在进行什么.
INFO : Connecting to 11.22.33.44 port 22
INFO : Connection established
INFO : Remote version string: SSH-2.0-OpenSSH_6.6.1
INFO : Local version string: SSH-2.0-JSCH-0.1.53
INFO : CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
INFO : aes256-ctr is not available.
INFO : aes192-ctr is not …Run Code Online (Sandbox Code Playgroud) (jersey-common = 2.21.0,jackson-core = 2.6.1)
如果调用了createParser(URL url),如何设置http连接超时(连接,读取)?使用的默认值是多少?
JsonFactory jsonF = new JsonFactory();
jsonF.enable(JsonParser.Feature.AUTO_CLOSE_SOURCE);
JsonParser jsonP = jsonF.createParser(url); // URL instance
try {
JsonToken token;
while ( (token=jsonP.nextToken()) != null) {
if (token == JsonToken.START_OBJECT)
..rest "json sax" parser code...
}
} finally {
jsonP.close();
}
Run Code Online (Sandbox Code Playgroud)
当webapp停止读取json源时,我每周都会有几次重复出现问题,任务每30分钟自动运行一次.我怀疑这个http调用会停止并开始堆积,直到JVM发生故障.
我不应该在生产应用程序中使用createParser(URL)功能吗?
如果传输编码被分块,如何知道HTTP响应的大小.我无法得到逻辑.请帮帮我.并提供一些示例java代码来获取chunk的大小.我在一些书中读到每个块的大小是在块本身之前指定的.但是使用哪个逻辑我可以得到它.请帮我用java.
谢谢.
我需要按最大YEAR/MONTH值选择行,并进行相当复杂的查询.它有效,但它不是最性能的解决方案吗?
Select Max(hr.HRYear) as HRYear, Max(hr.HRMonth) as HRMonth
From data hr,
(Select Max(HRYear) as HRYear From data) as atemp
Where hr.HRYear = atemp.HRYear
and hr.HRMonth = (Select Max(HRMonth) From data Where HRYear=atemp.HRYear)
Run Code Online (Sandbox Code Playgroud)
示例行和预期结果是HRYear = 2014,HRMonth = 10个值.键值是整数.
HRYear(int) HRMonth(int) Attr1(varchar)
2013 10 aa0
2013 11 aa3
2013 11 bb5
2013 12 aa2
2013 12 aa2
2014 7 cc1
2014 8 dd2
2014 10 ee3
2014 10 ee2
Run Code Online (Sandbox Code Playgroud)
您是否更好地了解如何选择最大年份+月份组合?我需要值来运行其他查询.
我已经接受了 Gordon的TOP1..ORDERBY解决方案,但一个(现已删除)的想法是这个查询.我有几百个测试行,所以基准测试几乎是不可能的,但是一旦我在一个产品中达到了数百万行,它仍然有待观察最有效的一行.
SELECT fst.HRYear, Max(fst.hrmonth) as HRMonth
FROM data fst
JOIN (SELECT …Run Code Online (Sandbox Code Playgroud)