小编Tim*_*imo的帖子

Jstack给出了java.lang.reflect.InvocationTargetException

直到昨天,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.

tomcat jstack

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

如何在Java servlet中同步文件访问?

我为一个简单的目的创建了一个小型Java servlet:一旦调用它,它将执行以下步骤:

  1. 从本地文件系统读取文件foo.json
  2. 处理文件中的数据并对其进行一些更改
  3. 将更改写回文件

简化版代码:

@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中同步文件系统访问?

java concurrency file synchronized filelock

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

如何测量句子之间的字符串相似度?

我有以下任务.

给出的字符串列表如下:

        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) …

javascript text-mining levenshtein-distance

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

如何在我的Cordova/Phonegap应用程序中只允许这些方向?

我使用Cordova创建了一个iOS(iPhone)应用程序,并且只想允许以下方向:

  • 肖像
  • 风景左
  • 景观正确

这也意味着不应该允许 "倒置" :

XCode截图设备方向

我知道我可以在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上

xcode ios cordova

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

iPhone上的全屏视频播放器是否有"onClose"事件?

我在网站上使用html5视频播放器.当用户开始播放时,播放器进入全屏模式并播放视频.

当视频结束时,我会抓住该ended事件并关闭视频播放器myvideo.webkitExitFullScreen();.

现在,如果用户点击顶部栏中的"完成"按钮或者玩家通过关闭,玩家实际关闭时我需要另一个事件video.webkitExitFullScreen();.

有没有办法做到这一点?

video events html5

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

如果图像网址存在,如何在Vue.js中显示<img>?

我从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>仅在推文的实体值中实际存在图像时使用?

html javascript vue.js pug

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

如何找出GWT(客户端)中缺少哪些Java类?

我正在尝试将Java库导入GWT项目.

由于GWT的客户端无法访问整个Java API,因此无法找到某些类.

不幸的是,编译器没有抱怨,因为J2EE包被包含在项目中(对于服务器端代码).

现在,如何在客户端找到我的库所需的Java类?有没有列表或什么?

java gwt

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

好的或坏的想法:使用Java的多用户基于servlet的Web应用程序中的多个线程

我目前正在构建一个基于java-servlet的Web应用程序,它应该为很多用户提供服务(不要问我"有多少":-) - 我还不知道.

但是,在使用应用程序时,可能会在服务器端进行一些长时间处理.为了避免糟糕的UI响应,我决定将这些处理操作移到自己的线程中.这意味着一旦用户登录,就会发生1-10个线程在后台运行(每个用户!).

我曾经听说在Web应用程序中使用多个线程是一个"坏主意".

这是真的,如果是的话:为什么?

更新:我忘了提到我的应用程序很大程度上依赖于ajax调用.每个用户操作都会导致新的ajax调用.因此,当主servlet线程忙时,ajax调用需要很长时间才能处理.这就是我想要使用多线程的原因.

java multithreading

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

获取Java InputStream后面的文件的字节数

正如标题所说,我需要知道文件有多少字节在InputStream"后面".我不想下载所有字节和计数(需要很长时间).我只需要知道文件有多少字节.

像这样:

int numberOfBytes = countBytes(inputStream);
Run Code Online (Sandbox Code Playgroud)

所以,我需要一个countBytes实现(InputStream inputStream)

java bytearray inputstream

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

如何在JavaScript中覆盖所有元素的focus()?

我想覆盖focus()JavaScript中所有HTML元素的函数.

我怎么做?

javascript

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