直到昨天,jstack工作正常.今天,所有突然之间它给了我下面的例外,我不知道为什么:
$ sudo -u tomcat6 jstack -J-d64 -m 26385
Attaching to process ID 26385, please wait...
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.tools.jstack.JStack.runJStackTool(JStack.java:118)
at sun.tools.jstack.JStack.main(JStack.java:84)
Caused by: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 20.1-b02. Target VM is 19.0-b09
at sun.jvm.hotspot.runtime.VM.checkVMVersion(VM.java:224)
at sun.jvm.hotspot.runtime.VM.<init>(VM.java:287)
at sun.jvm.hotspot.runtime.VM.initialize(VM.java:357)
at sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:594)
at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:494)
at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:332)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:163)
at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
... 6 more
Run Code Online (Sandbox Code Playgroud)
有谁知道是什么导致了这个?我在Ubuntu服务器版上运行Tomcat6.
我为一个简单的目的创建了一个小型Java servlet:一旦调用它,它将执行以下步骤:
简化版代码:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FileInputStream inputStream = new FileInputStream("foo.json");
String filecontent = IOUtils.toString(inputStream);
inputStream.close();
JSONObject json = new JSONObject(filecontent);
doSomeChangesTo(json);
FileWriter writer = new FileWriter("foo.json");
writer.write(json.toJSONString());
writer.flush();
writer.close();
}
Run Code Online (Sandbox Code Playgroud)
现在我面临的问题是,几乎可以通过两个或多个对servlet的http请求来调用servlet.为了避免对同一文件进行多次并行写访问,我需要以某种方式同步它.根据我对servlet生命周期过程的理解,每个请求都会生成一个新线程,因此使用FileLock可能没有任何影响:
文件锁代表整个Java虚拟机.它们不适合控制同一虚拟机中多个线程对文件的访问.
(来自http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileLock.html)
我想使用synchronized(){}关键字也不起作用,因为我想同步文件系统访问而不是访问变量/对象.
那么,当该servlet上发生多个并行请求时,如何在我的servlet中同步文件系统访问?
我有以下任务.
给出的字符串列表如下:
var strings = [
'Steve jobs created the iPod when he was at Apple',
'I really like the new Macbook by Apple',
'Jony Ive was concerned being fired by Steve Jobs after his return to Apple',
'The new Macbook has just one USB-C type connector',
'I like bananas',
'The brezels I can buy in my local store are much better than the ones in the supermarket',
'the',
'foo',
'Steve'
];
Run Code Online (Sandbox Code Playgroud)
我现在想要将每个字符串相互比较,并且对于每个比较,我想知道它们在0-1(或0%-100%)的范围内彼此之间的相似程度.
所以,我google了一下,发现了这个:Java中的相似性字符串比较
所以,我按照那里的指令,将方法移植similarity(String s1, String s2) …
我使用Cordova创建了一个iOS(iPhone)应用程序,并且只想允许以下方向:
这也意味着不应该允许 "倒置" :
我知道我可以在Xcode中设置它,但是当我开始新的Cordova构建时,这个设置会被覆盖.
所以我检查了Cordova文档,发现了这个:http://cordova.apache.org/docs/en/5.1.1/config_ref_index.md.html#The%20config.xml%20File
它说我可以在config.xml中设置方向如下:
<preference name="Orientation" value="landscape" />
Run Code Online (Sandbox Code Playgroud)
但我没有看到如何设置更精细的粒度设置,如上所述.如何才能做到这一点?
注意:我在Cordova 5.1.1上
我在网站上使用html5视频播放器.当用户开始播放时,播放器进入全屏模式并播放视频.
当视频结束时,我会抓住该ended事件并关闭视频播放器myvideo.webkitExitFullScreen();.
现在,如果用户点击顶部栏中的"完成"按钮或者玩家通过关闭,玩家实际关闭时我需要另一个事件video.webkitExitFullScreen();.
有没有办法做到这一点?
我从Twitter API获得了大量推文.有些推文附有图片,有些没有.
目前,我使用此代码显示推文的图像:
<template lang="jade">
div Tweet text
img(:src='tweet.entities.media[0].media_url', width='100%')
</template>
<script>
import store from './store.js';
export default {
name: 'tweet',
data () {
return {
tweet : store.selectedTweet
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
问题是这只有在推文实际上至少有一个图像时才有效.如果它没有图像,我得到一个例外,因为tweet.entities.media未定义.
我该如何解决这个问题,以便<img>仅在推文的实体值中实际存在图像时使用?
我正在尝试将Java库导入GWT项目.
由于GWT的客户端无法访问整个Java API,因此无法找到某些类.
不幸的是,编译器没有抱怨,因为J2EE包被包含在项目中(对于服务器端代码).
现在,如何在客户端找到我的库所需的Java类?有没有列表或什么?
我目前正在构建一个基于java-servlet的Web应用程序,它应该为很多用户提供服务(不要问我"有多少":-) - 我还不知道.
但是,在使用应用程序时,可能会在服务器端进行一些长时间处理.为了避免糟糕的UI响应,我决定将这些处理操作移到自己的线程中.这意味着一旦用户登录,就会发生1-10个线程在后台运行(每个用户!).
我曾经听说在Web应用程序中使用多个线程是一个"坏主意".
这是真的,如果是的话:为什么?
更新:我忘了提到我的应用程序很大程度上依赖于ajax调用.每个用户操作都会导致新的ajax调用.因此,当主servlet线程忙时,ajax调用需要很长时间才能处理.这就是我想要使用多线程的原因.
正如标题所说,我需要知道文件有多少字节在InputStream"后面".我不想下载所有字节和计数(需要很长时间).我只需要知道文件有多少字节.
像这样:
int numberOfBytes = countBytes(inputStream);
Run Code Online (Sandbox Code Playgroud)
所以,我需要一个countBytes实现(InputStream inputStream)
我想覆盖focus()JavaScript中所有HTML元素的函数.
我怎么做?
java ×4
javascript ×3
bytearray ×1
concurrency ×1
cordova ×1
events ×1
file ×1
filelock ×1
gwt ×1
html ×1
html5 ×1
inputstream ×1
ios ×1
jstack ×1
pug ×1
synchronized ×1
text-mining ×1
tomcat ×1
video ×1
vue.js ×1
xcode ×1