小编CSc*_*ulz的帖子

ServiceImpl中的GWT,Google App Engine,TimerTask或Thread抛出异常

我正在使用GWT和Google App Engine.我有一系列记录,我想每30分钟更新一次.在ServiceImpl中我有以下代码:

new Timer().schedule(new TimerTask(){
    @Override
    public void run() {
        try {
            Thread.sleep(30000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        result = updateFeeds();
    }
}, 30000,Long.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,当我得到:

com.google.gwt.user.server.rpc.UnexpectedException:
Service method 'public abstract java.util.List org.joke.planet.client.FeedService.loadFeeds()' threw an unexpected exception:
java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
Run Code Online (Sandbox Code Playgroud)

在第一行或粘贴的代码.

我的问题是如何让一个后台工作者在GWT + AppEngine服务中工作?

java gwt google-app-engine multithreading

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

使用JNA将C数组返回给Java

我对C不太熟悉,但我需要在我的java代码中使用C库.我已经创建了DLL并且能够很好地访问它,但我试图从C代码返回一个int数组到java代码.

在CI中,您可以简单地返回一个指向数组的指针,但它的工作方式与我在Java代码中的预期不同.这是C代码:

int * getConusXY(double latitude, double longitude) {
    maparam stcprm;
    double reflat = 25, reflon = -95,
            lat1 = 20.191999, lon1 = -121.54001,
            x1 = 0, y1 = 0, x2 = 1073, y2 = 689,
            gsize = 5.079, scaLat = 25, scaLon = -95, orient = 0;
    double x, y;
    int* xy;

    xy = malloc(2 * sizeof *xy);

    stlmbr(&stcprm, reflat, reflon);
    stcm1p(&stcprm, x1, y1, lat1, lon1, scaLat, scaLon, gsize, orient);
    cll2xy(&stcprm, latitude, longitude, &x, &y);

    xy[0] = (int) x; …
Run Code Online (Sandbox Code Playgroud)

java arrays jna

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

如何在nginix.conf中将GitLab配置为子域

在我的VPS上安装GitLab之前,我正在使用Apache2.我只想让GitLab成为我网站的子域名(git.example.com),并让我的主站点(www.example.com)查看/var/www/html/index.html

这是我现在的nginx.conf文件:

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

upstream gitlab {

    server unix:/home/gitlab/gitlab/tmp/sockets/gitlab.socket; }

    server {

        listen 80;
        server_name www.example.com;
        root /home/gitlab/gitlab/public;

        # individual nginx logs for this gitlab vhost
        access_log  /var/log/nginx/gitlab_access.log;
        error_log   /var/log/nginx/gitlab_error.log;

        location / {
            # serve static files from defined root folder;. …
Run Code Online (Sandbox Code Playgroud)

linux configuration webserver nginx gitlab

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

确保弹簧组件无状态

当开发人员向Spring组件引入可变性时,我们遇到了多线程问题.像这样的东西:

@Component //singleton
public class MyComponent {
...
private String intermediateResults;
public String businessMethod() {
 ... fills in intermediateResults;
}

public String thisGetterShouldNotBeHere() {
    return intermediateResults;
 }
}
Run Code Online (Sandbox Code Playgroud)

这导致了多线程的错误 - 字段intermediateResults已经从不同的线程访问.

有没有办法阻止向Spring Singleton添加状态,例如通过某种静态分析器?SonarQube插件?Eclipse插件?谢谢你的建议.

java eclipse spring multithreading

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

为什么InvokeLater导致我的JFrame无法正确显示?

好的,我已经在网上阅读了一个搜索过的内容,但我还没有找到问题的解决方案,也许我错过了一些简单的东西,因此我在这里......

我有一个相当大的项目,处理维修业务的工单.这是所有数据库连接,许多页面的代码和类.但我只是在前端添加了一小段代码,实质上是在我们的笔记区域中检查新消息.

无论如何,我显示一个带有两个JLabel的简单JFrame,而一个单独的线程查询数据库.这一切都发生在程序的开始.问题是我的小"请等待" JFrame提出了它的框架,但没有胆量,没有背景,没有JLabel,在等待期间(这是程序加载的其余部分,而不是数据库线程),显示后,但到那时它错过了它的观点.

我写了以下示例程序.它显示一个简单的JFrame(CheckingMessagesGUI:一个带有两个JLabelJFrame,仅此而已)休眠5秒然后显示Example(主程序)JFrame,然后立即关闭()在这个例子中,当然我真正的程序继续做多很多.我发现这似乎是导致问题的原因.一旦睡眠定时器用完,窗口就会显示,但显示它的代码是在命令之前给出的,应该按照那个顺序完成吗?System.exit(0)invokeLaterThread.sleep

我的问题是为什么invokeLater导致我的JFrame无法正确显示?

我的理解是,目的invokeLater是让项目在正确的AWT事件线程上运行,这会让我觉得这个窗口会被正确绘制.无论如何,我确定我错过了一些明显的东西.我invokeLater在下面的代码中注释了该部分,并且它正确运行,如果你把它放回去它不...

提前谢谢了.

package javaapplication6;

public class Example extends javax.swing.JFrame {          
    public Example() {
        System.out.println("Example started");
        setBounds(100,100,200,200);

        System.out.println("cmGUI instantiated");
        CheckingMessagesGUI cmGUI = new CheckingMessagesGUI();
        System.out.println("Set cmGUI visible");
        cmGUI.setVisible(true);
        cmGUI.validate();
        try {
            System.out.println("timer started");
            Thread.sleep(5000);
            System.out.println("timer done");
        } catch(InterruptedException e){
        }
        System.exit(0);
    }

    public static void main(String[] args) {
        /*java.awt.EventQueue.invokeLater(new …
Run Code Online (Sandbox Code Playgroud)

java swing awt invokelater

6
推荐指数
1
解决办法
4897
查看次数

Android中SHA1哈希实现的问题

我有两个用于计算SHA1的小片段.

一个是非常快但似乎它是不正确的,另一个是非常缓慢但正确的.
我认为FileInputStream转换ByteArrayInputStream是问题所在.

快速版:

MessageDigest md = MessageDigest.getInstance("SHA1");
FileInputStream fis = new FileInputStream("path/to/file.exe");
ByteArrayInputStream byteArrayInputStream =
    new ByteArrayInputStream(fis.toString().getBytes());
DigestInputStream dis = new DigestInputStream(byteArrayInputStream, md);
BufferedInputStream bis = new BufferedInputStream(fis);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

int ch;
while ((ch = dis.read()) != -1) {
    byteArrayOutputStream.write(ch);
}

byte[] newInput = byteArrayOutputStream.toByteArray();
System.out.println("in digest : " +
    byteArray2Hex(dis.getMessageDigest().digest()));

byteArrayOutputStream = new ByteArrayOutputStream();
DigestOutputStream digestOutputStream =
    new DigestOutputStream(byteArrayOutputStream, md);
digestOutputStream.write(newInput);

System.out.println("out digest: " +
    byteArray2Hex(digestOutputStream.getMessageDigest().digest()));
System.out.println("length: " + 
    new String( …
Run Code Online (Sandbox Code Playgroud)

java hash android sha1 stream

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

在 SONAR 中使用 Jacoco 的 IT 测试覆盖率为 0%

我在用:

SONAR v.3.2(它有jacoco)

Maven 3.0.4

遵循“ http://johndobie.blogspot.in/2012/05/easy-unit-and-integration-code-coverage.html#comment-form ”以获得单元和IT测试的单独代码覆盖率。但 IT 测试覆盖率显示为 0%。它生成单独的 jacoco-unit.exec (44kb) 和 jacoco-it.exec (14kb),但覆盖率仅显示在 SONAR 上的单元测试中。

日志显示为:

[INFO] [13:10:23.515] Sensor SquidSensor done: 9437 ms
[INFO] [13:10:23.515] Sensor JaCoCoSensor...
[INFO] [13:10:23.578] Analysing ...\target\coverage-reports\jacoco-unit.exec
[INFO] [13:10:30.390] Sensor JaCoCoSensor done: 6875 ms
[INFO] [13:10:30.390] Sensor JaCoCoItSensor...
[INFO] [13:10:30.390] Analysing ...\target\coverage-reports\jacoco-it.exec
[INFO] [13:10:30.469] Sensor JaCoCoItSensor done: 79 ms
[INFO] [13:10:30.484] Sensor SurefireSensor...
[INFO] [13:10:30.484] parsing ...\target\surefire-reports
[INFO] [13:10:30.828] Sensor SurefireSensor done: 344 ms
[INFO] [13:10:30.828] Sensor CpdSensor...
[INFO] [13:10:30.828] SonarEngine is used …
Run Code Online (Sandbox Code Playgroud)

integration-testing code-coverage jacoco sonarqube

6
推荐指数
1
解决办法
8759
查看次数

Flyway数据库迁移到多个模式

我为我的多租户应用程序设置了一个迁移脚本.问题是.它只生成我在参数上指定的第一个租户/架构的脚本.这是我的sql脚本

drop table if exists ADMIN_ACCOUNT cascade;

drop table if exists PERSON_NAME cascade;

drop table if exists USER_ACCOUNT cascade;

create table ADMIN_ACCOUNT (
    id int8 not null,
    created_date timestamp,
    PASSWORD varchar(255),
    USERNAME varchar(255),
    membershipType varchar(255),
    NAME_ID int8,
    primary key (id)
);

create table PERSON_NAME (
    id int8 not null,
    created_date timestamp,
    FIRST_NAME varchar(255),
    LAST_NAME varchar(255),
    MIDDLE_NAME varchar(255),
    account_id int8,
    primary key (id)
);

create table USER_ACCOUNT (
    id int8 not null,
    created_date timestamp,
    PASSWORD varchar(255),
    USERNAME varchar(255),
    ROLE varchar(255),
    TENANT_CODE …
Run Code Online (Sandbox Code Playgroud)

java database migration maven flyway

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

SonarQube 规则鱿鱼:S1451 应定义版权和许可证标头

我的所有 SonarQube 代码分析 Java 项目都未能遵循此规则。

每个源文件都应以标头开头,说明文件所有权以及分发应用程序必须使用的许可证。此规则必须包含每个文件开头所需的标题文本。

有一个参数:

headerFormat 预期的版权和许可标头(纯文本)

但没有关于如何配置的示例。默认情况下 headerFormat 为空,我找不到有关配置此规则的文档。

我猜应该有某种可以使用的正则表达式或模板语言?

sonarqube sonarqube5.1

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

什么是common.chunk.js?

我有一个Angular 5应用程序,运行angular-cli 1.6.6,当捆绑我的应用程序时,我(在所有其他人中)有一个common.chunk.js.

你知道这是什么吗?它与我的任何模块都不匹配,它也不是供应商主要polyfill,因为它们有专用的块.

在此输入图像描述

webpack angular-cli angular

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