问题描述
用户在尝试使用 Jenkins 部署本地代码库的副本到 Tomcat 9 服务器时遇到了问题。Jenkins 和 Tomcat 运行在不同的端口上。尽管已经成功构建和部署了一些版本,但发现访问 Tomcat 服务器上除首页之外的页面时出现了 404 错误。用户怀疑这可能是因为依赖项不足,因为 Jenkins 使用的是工作空间而不是本地仓库。在切换目录后,解决了一个错误,但仍然遇到了如下错误信息:
[DeployPublisher][INFO] Attempting to deploy 1 war file(s)
[DeployPublisher][INFO] Deploying C:\Users\(myusername)\Projects\ier_ui\target\derui.war to container Tomcat 9.x Remote with context derui
ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to redeploy [C:\Users\(myusername)\Projects\ier_ui\target\derui.war]
...
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
...
用户已尝试删除并重新安装 Jenkins,但重新安装后仍然遇到了同样的错误,即使他认为错误与更改工作空间位置有关。用户希望了解这可能是由什么原因引起的,也许与 apache-tomcat 文件夹的访问权限有关,但即使是在这样的情况下,之前也一直是正常工作的。对于这个问题,用户非常希望获得解决方案或见解。
解决方案
注意:以下操作可能涉及到网络连接和安全性设置,请确保在进行操作之前已经了解相关风险。
方案1 – 检查 Tomcat 链接协议
首先,确认正在部署到 Tomcat 时的链接协议是否正确。用户已经意识到自己之前的链接是使用 HTTPS 协议的:
https://localhost:portNo
但实际上应该使用 HTTP 协议:
http://localhost:portNo
请确认在 Jenkins 部署配置中使用了正确的协议。如果之前使用的是 HTTPS,确保切换为 HTTP 并重新尝试部署。
方案2 – 确保正确的 Tomcat 凭证
用户提到已经提供了正确的 Tomcat 凭证,包括 manager-gui
和 manager-script
角色。这是正确的做法,但仍需要确保这些凭证在部署过程中仍然有效。
请检查以下几点:
1. 确保提供的凭证具有足够的权限执行部署操作。
2. 确保凭证没有过期或被撤销。
3. 在 Jenkins 部署配置中,检查凭证是否正确配置,没有拼写错误或误用。
如果凭证没有问题,可以尝试在 Tomcat 管理界面手动执行部署操作,以确定是否存在额外的问题。
方案3 – 确认网络和防火墙设置
SSL 错误可能与网络连接和防火墙设置有关。确保 Jenkins 服务器能够访问 Tomcat 服务器,并且没有任何网络层面的问题。
- 确保 Jenkins 服务器和 Tomcat 服务器之间没有网络隔离或防火墙屏蔽。
- 确认服务器之间的网络连接是否稳定。
- 尝试在 Jenkins 服务器上执行一些简单的网络操作,例如通过命令行或脚本访问 Tomcat 服务器的接口,以确认连接是否正常。
如果网络连接有问题,可能需要联系网络管理员或解决相关的网络配置问题。
方案4 – 检查 Tomcat 日志和错误信息
如果以上的方法仍然没有解决问题,可以进一步查看 Tomcat 的日志和错误信息,以获取更多的线索。查看 Tomcat 日志文件和任何有关部署的错误消息,以便更详细地了解问题所在。
- 检查 Tomcat 的日志文件,特别是关于部署的日志记录。
- 查找任何关于 SSL、连接或部署失败的错误信息。
- 根据日志中的错误消息,尝试查找解决方案或进一步的调查。
这些步骤将帮助你更深入地理解问题所在,可能提供关键的信息来解决 SSL 异常和部署错误。
方案5 – 查看 Jenkins 配置和插件
最后,确保你的 Jenkins 配置正确且没有任何异常。如果使用了特定的插件来进行部署,确保插件已正确配置并且与你的 Tomcat 版本兼容。
- 检查 Jenkins 部署配置中的参数,特别是与 Tomcat 相关的参数。
- 确认使用的 Jenkins 插件是否是最新版本,且与你的 Jenkins 和 Tomcat 版本兼容。
- 阅读插件的文档,查找可能影响部署的配置选项。
在确认 Jenkins 和插件配置没有问题的情况下,继续尝试其他解决方案,如检查网络连接、Tomcat 凭证、链接协议和 Tomcat 日志等。
这些解决方案应该能够帮助你排除或解决 SSL 异常和部署错误,使你能够成功部署你的应用程序。如果问题仍然存在,请继续调查并寻求更多专业的帮助。