部署tomcat之前,需要部署jdk环境,那么jdktomcat之间也是有一定得兼容性的,抛开版本问题不谈(jdktomcat版本,不能相差太大,jdk向下兼容),jdktomcat中还是有很多的兼容性 问题的,具体偶也不大清楚,下边为一例:

  服务器部署完成后,通过手机app访问项目访问报错,查看tomcat的日志localhost_access.txt没有异常,查看tomcatlogs/catalina.out日志出现下边错误:

  java.security.InvalidKeyException: Illegalkey size

                            wKiom1hl-ZPCK_hzAAHkv28FV1s288.png-wh_50

其错误是由于base 64解密的问题,Java几乎各种常用加密算法都能找到对应的实现。因为美国的出口限制,Sun通过权限文件(local_policy.jarUS_export_policy.jar)做了相应限制。因此存在一些问题:

●密钥长度上不能满足需求(如:java.security.InvalidKeyException: Illegal key size or defaultparameters);

●部分算法未能支持,如MD4SHA-224等算法;

API使用起来还不是很方便;一些常用的进制转换辅助工具未能提供,如Base64编码转换、十六进制编码转换等工具。

  Oracle在其官方网站上提供了无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files),我们只需要将其部署在JRE环境中,就可以解决限制问题。

 

下载地址:

Java 5.0 无政策限制文件:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

Java 6.0 无政策限制文件:

http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

Java 7.0 无政策限制文件:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

 

下载后解压,可以看到local_policy.jarUS_export_policy.jar以及readme.txt

如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件

如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

重启主机,再次进行访问,大功告成。


这个问题第一次遇到,搞了一天半,大牛勿喷!

希望尽自己的微薄之力能够帮助更多的朋友们!