我正在尝试启动一个tomcat实例(我唯一拥有的tomcat),而且我遇到了一些奇怪的问题,我知道这个错误:
无法初始化与ProtocolHandler相关联的终点
是因为其他一些应用程序正在使用相同的端口,但如果我更改 server.xml 中的端口并再次运行 startup.bat ,我会得到相同的错误,但现在指向新端口,每次y更改它我得到相同的错误,我也检查其他应用程序使用命令 netstat -ano |监听相同的端口找到“9080”,我在3台不同的机器上试过这个(2 win7,1 win win server 2008),有没有人遇到过这个问题?
2014年2月13日下午1:25:22 org.apache.coyote.AbstractProtocol init INFO: 初始化ProtocolHandler [“http-bio-9080”] 2014年2月13日下午1:25:22 org.apache.coyote.AbstractProtocol init INFO:正在初始化 ProtocolHandler [“http-bio-9443”] 2014年2月13日下午1:25:23 org.apache.coyote.AbstractProtocol init SEVERE:初始化失败 与ProtocolHandler相关的终点[“http-bio-9443”] Throwable 发生:java.io.IOException:$ {jazz.connector.sslProtocol} SSLContext不在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:475) ...
由于
答案 0 :(得分:0)
我已经引用了这个page来为我的本地tomcat或tomcat中的tomcat配置https(SSL)。
在完成上述link之后的3个步骤之后,当我尝试启动服务器时,我在启动时遇到了异常:
SEVERE: Failed to initialize end point associated with ProtocolHandler [http-bi o-8443] java.io.IOException: Cannot recover key at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:54
4)
因为它与以下异常有关:
java.io.IOException: Keystore was tampered with, or password was incorrect at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:772)
问题是当我尝试更改server.xml时,我没有在keystorePass
和keyPass
上提供正确的密码值,如下所示。
当我使用以下命令生成密钥库时,我已输入 changeit 作为密钥库的密码。但是,当我在https的server.xml文件中配置时,我提供了不同的密码。
命令:$Tomcat\bin>keytool -genkey -alias mkyong -keyalg RSA -keystore c:\mkyongkeystore
我有这个
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="c:\mkyongkeystore"
keystorePass="password" />
我改为
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/srccodes.jks"
keystoreType="JKS"
keystorePass="changeit"
keyPass="changeit" />
它对我有用。