搭建工程之一 eclipse 中基于 maven 的 webapp工程能基于tomcat运行
一、背景
作为开发人员,开发的web(运行在tomcat 容器中)希望能够在本地开发工具(eclipse)中运行调试,加快开发测试进度。
二、操作步骤
1、创建maven工程
- 在 eclipse 上右键,选择"New"---"Other" --- "Maven" ---- " Maven Project "
- 勾选上“Create a simple project”
- 配置工程的基本信息,其中 Packaging 需要选择 “war”
- 创建完工程之后,会发现pom.xml报错,提示的错误信息为“web.xml is missing and <failOnMissingWebXml> is set to true”
2、将 tomcat 集成到 eclipse 中
- 从官网上下载你要用的
运行之后,发现无法看到 tomcat的本身的日志
1、将 logging.properties 放到eclipse 配置的 catalina.base 目录/conf 下
2、配置了启动参数中有日志配置文件
Can't load log handler "2localhost.org.apache.juli.AsyncFileHandler" java.lang.ClassNotFoundException: 2localhost.org.apache.juli.AsyncFileHandler java.lang.ClassNotFoundException: 2localhost.org.apache.juli.AsyncFileHandler at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.logging/java.util.logging.LogManager.createLoggerHandlers(LogManager.java:1000) at java.logging/java.util.logging.LogManager$4.run(LogManager.java:970) at java.logging/java.util.logging.LogManager$4.run(LogManager.java:966) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.logging/java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:966) at java.logging/java.util.logging.LogManager.addLogger(LogManager.java:1199) at java.logging/java.util.logging.LogManager.demandLogger(LogManager.java:525) at java.logging/java.util.logging.LogManager.demandLogger(LogManager.java:515)
28-May-2024 10:16:17.966 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.89 28-May-2024 10:16:17.970 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: May 3 2024 20:22:11 UTC 28-May-2024 10:16:17.970 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.89.0 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 10 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: D:\ide\jdk-11.0.2 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.2+9 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Oracle Corporation 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: D:\cmcworkspace\consul\.metadata\.plugins\org.eclipse.wst.server.core\tmp2 28-May-2024 10:16:17.971 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\ide\apache-tomcat-9.0.89 28-May-2024 10:16:17.983 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=D:\cmcworkspace\consul\.metadata\.plugins\org.eclipse.wst.server.core\tmp2 28-May-2024 10:16:17.983 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=D:\ide\apache-tomcat-9.0.89 28-May-2024 10:16:17.983 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dwtp.deploy=D:\cmcworkspace\consul\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps 28-May-2024 10:16:17.983 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 28-May-2024 10:16:17.984 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=D:\cmcworkspace\consul\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\conf\logging.properties 28-May-2024 10:16:17.984 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8 28-May-2024 10:16:17.987 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.0]。 28-May-2024 10:16:17.987 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。 28-May-2024 10:16:17.987 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true] 28-May-2024 10:16:17.995 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.13 30 Jan 2024] 28-May-2024 10:16:18.237 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"] 28-May-2024 10:16:18.266 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[483]毫秒内初始化 28-May-2024 10:16:18.316 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina] 28-May-2024 10:16:18.316 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.89] 28-May-2024 10:16:18.658 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"] 28-May-2024 10:16:18.741 信息 [main] org.apache.catalina.startup.Catalina.start [475]毫秒后服务器启动
问题:
在ecplise中集成的tomcat中运行,只能访问首页,应用程序自身的日志文件未产生,且 controller 层的接口也访问不了。
验证单独:将springboot的工程放到tomcat容器中运行
1、改造
2、运行
2024-05-28T14:02:59.041+08:00 DEBUG demo.tomcat [main] [o.s.b.factory.support.DefaultListableBeanFactory:952] Autowiring by type from bean name 'requestMappingHandlerMapping' via factory method to bean named 'mvcContentNegotiationManager'
2024-05-28T14:02:59.041+08:00 DEBUG demo.tomcat [main] [o.s.b.factory.support.DefaultListableBeanFactory:952] Autowiring by type from bean name 'requestMappingHandlerMapping' via factory method to bean named 'mvcConversionService'
2024-05-28T14:02:59.041+08:00 DEBUG demo.tomcat [main] [o.s.b.factory.support.DefaultListableBeanFactory:952] Autowiring by type from bean name 'requestMappingHandlerMapping' via factory method to bean named 'mvcResourceUrlProvider'
2024-05-28T14:02:59.086+08:00 DEBUG demo.tomcat [main] [_.s.web.servlet.HandlerMapping.Mappings:295]
c.j.d.s.TestHelloController:
{GET [/test/hello]}: hello()
问题:
直接使用 localhost:8080/tomcat 访问不了应用程序的首页,也就是index.html页面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?