启动Tomcat无法初始化与ProtocolHandler关联的端点

时间:2014-02-13 22:03:02

标签: java tomcat port catalina

我正在尝试启动一个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)   ...

由于

1 个答案:

答案 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时,我没有在keystorePasskeyPass上提供正确的密码值,如下所示。 当我使用以下命令生成密钥库时,我已输入 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" />

它对我有用。