【发布时间】:2018-03-16 13:33:29
【问题描述】:
由于我最近才开始使用网络应用程序,因此我有一个一般性问题,它挑战了我对网络应用程序的理解。
为了简化 - 我有一个 maven 项目,可以使用mvn clean install 成功安装,然后可以使用命令行从“apache-tomcat/bin”文件夹开始执行catalina start。在这一点上,我还将补充说 localhost 是可访问的并且运行良好。
我们的目标是使用 eclipse 做同样的事情。我可以从 Eclipse 成功安装 maven 项目,但我无法启动服务器 - 或者更确切地说 - 我可以启动服务器,但它无法正常工作。
我尝试从 Eclipse 启动服务器的方式是添加一个运行时环境(Windows->Preferences->Runtime Environmentss: tomcat 7),它指向 tomcat 根文件夹/target/apache-tomcat(请注意“目标”文件夹是由于安装/构建 Maven 项目而创建的)。最后,我在 Eclipse 的“概览”选项卡中更改配置路径(设置为 apache-tomcat/conf),并勾选“使用自定义位置”单选按钮,指向“apache-tomcat”文件夹。
结果服务器启动但尝试访问 localhost 时,抛出异常而不是“主页”:
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.attemptAuthentication(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)
显然 eclipse 以某种方式覆盖了 tomcat 启动配置,但我不知道为什么。如有任何意见,我将不胜感激!
@update:虽然到目前为止我已经尝试了@skomisa 建议的所有方法,但它似乎不起作用。有趣的是,我可以通过命令提示符运行服务器(例如,一旦构建完成,来自 tomcat bin 目录的“catalina run”),但我无法在 eclipse 中运行它,因为引发了以下异常。我不通过 HTTPS 访问本地主机,而是通过 HTTP。那是因为在“添加和删除”窗口中没有要部署的 Web 应用程序吗?在这一点上,我要补充一点,我的 eclipse 项目只是 Maven 性质的(它没有转换为动态 Web 项目,我不确定是否必须这样才能成功运行 tomcat)。
【问题讨论】:
标签: eclipse runtime tomcat7 config environment