您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
15-使用tomcat插件启动web项目(无骨架)
发布时间:2022-10-11 23:35:55编辑:雪饮阅读()
基于maven项目无骨架的web启动
像是昨天那种启动web的配置方式是不对的,有了maven创建非骨架web项目后,则可以这样来配置web项目的部署启动。
首先咱们来删除昨天webapp下面的index.jsp
然后建立index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
hello world
</body>
</html>
然后像之前一样,在plugin template创建了插件模板后
咱们可以在插件模板对应标签里面以关键字(网络速度慢的时候,关键字就搜不到东西,当然因素也比较多,有时候这种东西只能是模板,感觉还是网络上找插件更便捷吧)最后创建的插件代码经过整理后如:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>untitled8</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
版本号2.1,这里好像是要选择本地仓库有的,这个一般应是影响不大吧。
配置完成后刷新maven项目区域,如果看到当前项目的plugins下的
org.apache.tomcat.maven:tomcat7-maven-plugin:2.1报红色状态,则在上面的下载按钮处Download Sources
下载完成后就没有问题了。
然后双击刚才org.apache.tomcat.maven:tomcat7-maven-plugin:2.1下面的tomcat7:run即可运行该无骨架maven的web项目。
然后可以看到在底部控制台区域可以看到如
Running war on http://localhost:8080/untitled8
这样的输出,那么我们就访问这个url,就可以看到页面输出了
hello world
指定虚拟路径及访问默认端口
现在我们访问需要地址栏端口指定8080,那么实际上正常项目访问时用户是不用输入8080,因为默认是80,80是周知端口,浏览器以不指定端口即为80端口。
另外目前我们访问还需要在端口后面以/并追加上当前项目的名称,这样也是对于普通用户来说体验不好的。
基于此,则刚才的插件里面还支持指定周知端口及虚拟路径。
如:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
那么再次运行该项目后,我们就可以直接访问如:
项目快捷启动
像我们之前新增maven命令于锤锤和那个箭头中间的那个下拉列表中一样,这次我们也可以新增maven命令使得该项目直接通过下拉里的命令来运行了。
其它如之前一样根据自己的需求配置,然后Command line里面则命令应如:
tomcat7:run
那么此时用快捷下拉的这种命令方式来启动可能会在控制台中有如下输出:
严重: Failed to initialize connector [Connector[HTTP/1.1-80]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335)
at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1091)
at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:512)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 31 more
Caused by: java.net.BindException: Address already in use: JVM_Bind <null>:80
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
... 32 more
Caused by: java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393)
... 36 more
十月 11, 2022 11:31:47 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
十月 11, 2022 11:31:47 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.37
这个看似有严重报错问题,但是这个错误总共出现了两次,可能是重启吧。但是如果index.html代码里面有改动并保存了,该快捷命令启动后访问浏览器也确实看到新的改动生效了。所以应该是没有什么影响的。
关键字词:使用,tomcat,插件,启动,web,项目,无,骨架