启动jboss4.3时,内嵌的tomcat出现的No Certificate file specified or invalid file format异常...

背景:

用jboss4.3启动实例的时候遇到的错误:

09:49:19,850 INFO  [NativeServerConfig] JBoss Web Services - Native
09:49:19,850 INFO  [NativeServerConfig] jbossws-native-2.0.1.SP2_CP01 (build=200804021320)
09:49:21,255 INFO  [AprLifecycleListener] Loaded Apache Tomcat Native library 1.1.22.
09:49:21,255 INFO  [AprLifecycleListener] APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
09:49:22,379 INFO  [Http11AprProtocol] Coyote HTTP/1.1を http-127.0.0.1-58080 で初期化します
09:49:22,395 ERROR [Http11AprProtocol] エンドポイントを初期化中のエラーです
java.lang.Exception: No Certificate file specified or invalid file format
        at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)
        at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:684)
        at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:121)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1059)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:669)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:792)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:518)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:558)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
确认点:

1.java版本:jdk1.5中存在类似的bug,但在jdk1.6 b49后已修复

   详见:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6339385

2.tomcat版本:tomcat6.0.33以后apr选项默认开启,导致配置文件deploy\jbossweb.sar\server.xml中的protocol若设置为HTTP/1.1就会出以上错误,改为org.apache.coyote.http11.Http11Protocol即可;

若版本是6.0.33之前,环境变量下的bin群中存在tcnative-1.dll这个文件,tomcat在启动的时候也会打开apr。这时可以删除文件,也可以将协议改成上述的样子。

协议的修改原因可以参见apache的相关式样,因为本机使用的是jboss4.3内嵌的tomcat2.1.0,若是其他版本,可以自行选择一下的url的其他网页查看:

http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/jboss.web/jbossweb/2.1.0.GA/org/apache/catalina/connector/Connector.java#Connector.setProtocol%28java.lang.String%29

 

3.确认防火墙和RMI端口是否已经打开(这个方法会不会导致,我没有亲自再现,只是同事遇到过。个人表示怀疑)事后测试 error与此原因无关!!!

*tcnative-1.dll这个文件是用于提高tomcat处理静态资源的性能的。

 

最后说一下apr是否被开启的判断依据(以下红色部分)和启动log。

其实tomcat启动时,会去环境变量里记载的所有bin中检查是否有提升性能的文件,若有则开启apr,找不到就不开启apr。

未开启:

16:24:05,309 INFO  [NativeServerConfig] JBoss Web Services - Native
16:24:05,309 INFO  [NativeServerConfig] jbossws-native-2.0.1.SP2_CP01 (build=200
804021320)
16:24:06,121 INFO  [AprLifecycleListener] The Apache Tomcat Native library which
 allows optimal performance in production environments was not found on the java
.library.path: E:\Java\jdk1.6.0_26\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system
32;C:\WINDOWS;E:/Java/jdk1.6.0_26/bin/../jre/bin/client;E:/Java/jdk1.6.0_26/bin/
../jre/bin;C:\Apache-Subversion-1.7.5\bin;E:\Java\jdk1.6.0_26\bin;C:\middleware\
apache-ant-1.8.2\bin;C:\middleware\apache-maven-2.2.1\bin;C:\mysql5157\bin;E:\or
acle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\
Wbem;C:\Program Files\EmEditor;C:\Program Files\TortoiseSVN_1.7.5\bin;.
16:24:06,199 INFO  [Http11Protocol] Coyote HTTP/1.1を http-127.0.0.1-58080 で初
期化します
16:24:06,605 INFO  [Http11Protocol] Coyote HTTP/1.1を http-5443 で初期化します
16:24:06,605 INFO  [AjpProtocol] Initializing Coyote AJP/1.3 on ajp-127.0.0.1-80
09
16:24:06,605 INFO  [Catalina] Initialization processed in 601 ms
16:24:06,605 INFO  [StandardService] サービス jboss.web を起動します

开启apr:

09:49:19,850 INFO  [NativeServerConfig] JBoss Web Services - Native
09:49:19,850 INFO  [NativeServerConfig] jbossws-native-2.0.1.SP2_CP01 (build=200804021320)
09:49:21,255 INFO  [AprLifecycleListener] Loaded Apache Tomcat Native library 1.1.22.
09:49:21,255 INFO  [AprLifecycleListener] APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
09:49:22,379 INFO  [Http11AprProtocol] Coyote HTTP/1.1を http-127.0.0.1-58080 で初期化します

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值