【问题标题】:How to run existing apache tomcat instance from eclipse (runtime environment configuration)?如何从 Eclipse(运行时环境配置)运行现有的 apache tomcat 实例?
【发布时间】: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


    【解决方案1】:

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

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

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

    作为一个不相关的问题,您发布的堆栈跟踪表明您输入了 https URL,而您本应输入 http URL。是这样吗?

    【讨论】:

    • 感谢您的及时回复。不幸的是,我已经尝试了你提到的一切。我更新了我的初始帖子。问题只是在 Eclipse 中运行 tomcat 实例,因为我可以从 cmd 行运行 tomcat。
    猜你喜欢
    • 2014-07-31
    • 2019-08-13
    • 2011-01-01
    • 2019-02-13
    • 2017-05-29
    • 2016-10-02
    • 1970-01-01
    • 2011-02-09
    • 2016-12-02
    相关资源
    最近更新 更多