如何从 eclipse 运行现有的 apache tomcat 实例(运行时环境配置)



我有一个普遍的问题,它挑战了我对Web应用程序的理解,因为我最近才开始使用Web应用程序。

为了简化 - 我有一个 maven 项目,可以使用mvn clean install成功安装,然后可以使用命令行从"apache-tomcat/bin"文件夹开始执行catalina start。在这一点上,我还将补充一点,本地主机是可访问的并且运行良好。

目标是使用日食做同样的事情。我可以从 eclipse 成功安装 maven 项目,但我无法启动服务器 - 或者更确切地说 - 我可以启动服务器,但它无法正常工作。

我尝试从 eclipse 启动服务器的方式是添加运行时环境(Windows->Preferences->运行时环境:tomcat 7),它指向 tomcat 根文件夹/target/apache-tomcat(请注意"目标"文件夹是安装/构建 maven 项目的结果)。最后,我在 eclipse 的"概述"选项卡中更改了配置路径(设置为apache-tomcat/conf),并勾选了"使用自定义位置"单选按钮,指向"apache-tomcat"文件夹。

当结果服务器启动时,但在尝试访问本地主机时,而不是"主页",抛出异常:

java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 无法找到所请求目标的有效证书路径 org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:295) org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33) org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178) org.springframework.security.cas.authentication.CasAuthenticationProvider.authenticateNow(CasAuthenticationProvider.java:131) org.springframework.security.cas.authentication.CasAuthenticationProvider.authenticate(CasAuthenticationProvider.java:117) org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:130) org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48) org.springframework.security.cas.web.CasAuthenticationFilter.tryAuthentication(CasAuthenticationFilter.java:111) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

显然日食以某种方式覆盖了雄猫启动配置,但我不知道为什么。我将不胜感激任何意见!

@update:虽然到目前为止我尝试了@skomisa建议的所有方法,但它似乎不起作用。有趣的是,我可以通过命令提示符运行服务器(例如,一旦构建,从 tomcat bin 目录运行"catalina run"),但我无法在 eclipse 中运行它,因为抛出了以下异常。我不通过HTTPS访问本地主机,而是通过HTTP。这是因为在"添加和删除"窗口中没有要部署的 Web 应用程序吗?在这一点上,我要补充一点,我的 eclipse 项目只是 Maven 性质的(它没有转换为动态 Web 项目,我不确定它是否必须成功运行 tomcat)。

将 Tomcat 服务器添加到 Eclipse,如下所示:

  • 窗口 -> 显示视图 -> 服务器
  • "服务器"面板中,右键单击任何空白区域,然后选择新建 -> 服务器
  • 在打开的"新建服务器"向导中,展开服务器列表中的Apache节点,然后选择适当的 Tomcat 版本。在您的情况下,它是Tomcat v7.0服务器。单击下一步
  • 在下一个屏幕上,单击"浏览"按钮并导航到Tomcat 7的安装。单击下一步
  • 在"添加和删除"屏幕上,添加要在该 Tomcat 7 服务器上部署的任何 Web 应用程序,然后单击"完成"。
  • 您应该会在">服务器"面板的服务器列表中看到您的 Tomcat 7 服务器。选择它,右键单击并从弹出菜单中选择运行。Tomcat 将登录到控制台(窗口 -> 显示视图 -> 控制台)。
  • 在浏览器中输入应用程序的 URL。就是这样!

本教程也可能有所帮助: https://crunchify.com/how-to-create-dynamic-web-project-using-maven-in-eclipse/

作为一个不相关的问题,您发布的堆栈跟踪表明,当您应该输入httpURL 时,您输入了httpsURL。是这样吗?

最新更新