小编jon*_*jon的帖子

如何在Sun的JVM中禁用延迟类加载/初始化?

默认情况下,Sun的JVM都懒惰地加载类并且懒惰地初始化(即调用它们的<clinit>方法)它们.考虑以下类,ClinitBombExceptionstatic{}块中抛出一个.

public class ClinitBomb {
    static {
        explode();
    }   
    private static void explode() {
        throw new RuntimeException("boom!");
    }       
}
Run Code Online (Sandbox Code Playgroud)

现在,考虑如何触发炸弹:

public class Main {
    public static void main(String[] args) {
        System.out.println("A");
        try {
            Class.forName("ClinitBomb");
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }
        System.out.println("B");
        ClinitBomb o2 = new ClinitBomb();
        System.out.println("C");
    }
}
Run Code Online (Sandbox Code Playgroud)

我们保证爆炸发生在B点之前,因为forName文件说明了这一点; 问题是它是否发生在A点之前(Main加载时).在Sun的JVM中,即使main()包含静态引用ClinitBomb,它也会在A之后发生.

我想要一种方法告诉JVM ClinitBomb一旦初始化就加载并初始化Main(因此炸弹 A点之前爆炸).一般来说,我想要一种方式来说,"无论何时加载/初始化类X,对任何一个也是如此它引用的Y类."

有没有办法做到这一点?

java class classloader static-initializer

12
推荐指数
1
解决办法
4572
查看次数

使用Rackspace云负载均衡器通过https发送客户端IP地址

我们目前正在使用Lighttpd和FastCGI为我们的客户提供PHP服务.我们最近通过RackSpace Cloud添加了负载均衡来帮助我们处理流量,但客户端的IP现在是负载均衡器IP.所有流量都通过HTTPS传输.

我们启用了mod_extforward并尝试了所有不同的配置,使用我们的LB IP和不同的标头("X-Forwarded-For","Forwarded-For","X-Cluster-Client-Ip"),我们似乎无法让这个工作!

有任何想法吗?谢谢!

https reverse-proxy load-balancing ip-address rackspace-cloud

10
推荐指数
1
解决办法
7778
查看次数

在不暴露明文的情况下更改加密密钥

我们正在设计一个数据库系统来存储加密的信息字符串,加密和解密在客户端使用公钥密码术进行。但是,如果密钥被更改,则需要重新加密客户端的所有记录,这是非常不切实际的。有什么办法可以在不暴露原始(旧)解密密钥或消息文本的情况下在服务器端执行?

我想我想要的是一个关联密码,就像这样:

T( Eo(m) ) = En( Do(Eo(m) ))

其中 Eo(m) 是密文,Eo/Do 是旧的公钥/私钥对,En 是新的公钥,m 是消息文本,T 是神奇的重新加密函数。编辑: T 在客户端计算,然后发送到要使用的服务器。

encryption cryptography public-key-encryption public-key

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

如何使用来自各个PNG图像的可搜索文本构建PDF?

目前,我有一系列图像(PNG),并且每个图像都有一个未格式化的文本版本的内容.我想创建一个PDF,其中每个图像成为生成的PDF的完整页面,相应的文本也以某种方式附加到页面,以便搜索某些单词会将您带到包含该文本的页面,即使永远不会直接显示文本.

这是一次性工作,因此不必整洁或可扩展.我可以使用Linux系统上常用的任何语言,或常用的命令行工具.(我也有一个可以使用Acrobat的Windows系统,虽然有近千个图像,所以手册不起作用.)

pdf png image

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