当前位置: 首页 > 面试题库 >

部署简单的Spring MVC应用程序(无web.xml)后出现错误404

洪浩波
2023-03-14
问题内容

我想学习完全基于注释的Spring MVC的一些基础知识。

克隆存储库后

hg clone https://bitbucket.org/arnelism/snoutbook

并建立war文件

mvn package

我通过简单地将war文件复制到webapps我的Apache Tomcat 7.0.12实例的目录中来部署该应用程序。我正在停止并启动服务器。

信息:启动Servlet引擎:Apache Tomcat / 7.0.12
2014年9月12日下午3:37:18 org.apache.catalina.startup.HostConfig deployWAR
信息:部署Web应用程序存档Snoutbook-1.0.0-SNAPSHOT.war
2014年9月12日下午3:37:27 org.apache.catalina.startup.HostConfig deployDirectory
信息:部署Web应用程序目录文档
2014年9月12日下午3:37:27 org.apache.catalina.startup.HostConfig deployDirectory
信息:部署Web应用程序目录示例
2014年9月12日下午3:37:27 org.apache.catalina.startup.HostConfig deployDirectory
信息:部署Web应用程序目录主机管理器
2014年9月12日下午3:37:27 org.apache.catalina.startup.HostConfig deployDirectory
信息:部署Web应用程序目录管理器
2014年9月12日下午3:37:27 org.apache.catalina.startup.HostConfig deployDirectory
信息:部署Web应用程序目录ROOT
2014年9月12日下午3:37:27 org.apache.coyote.AbstractProtocolHandler开始
信息:启动ProtocolHandler [“ http-bio-8080”]
2014年9月12日下午3:37:27 org.apache.coyote.AbstractProtocolHandler开始
信息:启动ProtocolHandler [“ ajp-bio-8009”]
2014年9月12日下午3:37:27 org.apache.catalina.startup.Catalina开始
信息:服务器启动时间为8826毫秒

不幸的是,执行此操作后,我通过显示页面收到错误404。

http://localhost:8080/Snoutbook-1.0.0-SNAPSHOT/

我一直在寻找解决方案超过2个小时,但未能找到原因。有人有类似的问题吗?

编辑

我尝试使用最新的Tomcat版本apache-tomcat-8.0.12。问题仍然存在。但是,在部署Web应用程序时,控制台中会打印更多信息。

2014年9月12日17:13:20.038信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployWAR部署Web应用程序存档D:\ Users \ b21090094 \ apac
he-tomcat-8.0.12 \ webapps \ Snoutbook-1.0.0-SNAPSHOT.war
2014年9月12日17:13:23.132信息[localhost-startStop-1] org.apache.catalina.util.S
essionIdGeneratorBase.createSecureRandom为创建的SecureRandom实例
使用[SHA1PRNG]生成ession ID花费了[255]毫秒。
2014年9月12日17:13:23.169信息[localhost-startStop-1] org.springframework.web.se
rvlet.FrameworkServlet.initServletBean FrameworkServlet'dispatcher':初始化
开始
2014年9月12日17:13:23.182信息[localhost-startStop-1] org.springframework.contex
t.support.AbstractApplicationContext.prepareRefresh刷新WebApplicationCon
命名空间“ dispatcher-servlet”的文本:启动日期[周五9月12日17:13:23 CEST
2014];上下文层次结构的根
2014年9月12日17:13:23.278 INFO [localhost-startStop-1] org.springframework.contex
t.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters
找到并支持JSR-250'javax.annotation.ManagedBean'组件scannin
G
2014年9月12日17:13:23.281信息[localhost-startStop-1] org.springframework.web.co
ntext.support.AnnotationConfigWebApplicationContext.loadBeanDefinitions注册
注释的类:[类com.zeroturnaround.snoutbook.init.WebappConfigJpa]

2014年9月12日17:13:23.429 INFO [localhost-startStop-1] org.springframework.contex
t.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters
找到并支持JSR-250'javax.annotation.ManagedBean'组件scannin
G
2014年9月12日17:13:23.921信息[localhost-startStop-1] org.springframework.beans。
factory.support.DefaultListableBeanFactory.preInstantiateSingletons预先安装
在org.springframework.beans.factory.support.DefaultListableBea中设置单例
nFactory @ 7169a1:定义bean [org.springframework.context.annotation.internal
ConfigurationAnnotationProcessor,org.springframework.context.annotation.internal
AutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequ
iredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnn
otationProcessor,org.springframework.context.annotation.internalPersistenceAnnot
ationProcessor,webappConfigJpa,org.springframework.context.annotation.Configurat
ionClassPostProcessor $ ImportAwareBeanPostProcessor#0,addPetForm,snoutContoller,s
noutDao,org.springframework.aop.config.internalAutoProxyCreator,delegatingWebMvc
配置,requestMappingHandlerMapping,viewControllerHandlerMapping,beanName
HandlerMapping,resourceHandlerMapping,defaultServletHandlerMapping,requestMappin
gHandlerAdapter,mvcConversionService,mvcValidator,httpRequestHandlerAdapter,simp
leControllerHandlerAdapter,handlerExceptionResolver,proxyTransactionManagementCo
nfiguration,org.springframework.transaction.config.internalTransactionAdvisor,tr
ansactionAttributeSource,transactionInterceptor,transactionManager,entityManager
Factory,setupViewResolver,getDataSource]; 工厂层次结构的根
2014年9月12日17:13:24.225 INFO [localhost-startStop-1] org.springframework.orm.jp
a.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory Buildi
ng用于持久性单元“默认”的JPA容器EntityManagerFactory
2014年9月12日17:13:24.657 INFO [localhost-startStop-1] org.hibernate.annotations。
common.Version。HCANN000001:Hibernate Commons注释{4.0.1.Final}

2014年9月12日17:13:24.676 INFO [localhost-startStop-1] org.hibernate.Version.logV
ersion HHH000412:Hibernate Core {4.1.2}
2014年9月12日17:13:24.681信息[localhost-startStop-1] org.hibernate.cfg.Environm
耳鼻喉科。HHH000206:找不到hibernate.properties
2014年9月12日17:13:24.686信息[localhost-startStop-1] org.hibernate.cfg.Environm
ent.buildBytecodeProvider HHH000021:字节码提供者名称:javassist
2014年9月12日17:13:24.772信息[localhost-startStop-1] org.hibernate.ejb.Ejb3Conf
iguration.configure HHH000204:处理PersistenceUnitInfo [
        名称:默认
        ...]
2014年9月12日17:13:25.524信息[localhost-startStop-1] org.hibernate.service.jdbc
.connections.internal.ConnectionProviderInitiator.instantiateExplicitConnectionP
rovider HHH000130:实例化显式连接提供程序:org.hibernate.ejb
.connection.InjectedDataSourceConnectionProvider
2014年9月12日17:13:26.275 INFO [localhost-startStop-1] org.hibernate.dialect.Dial
等等。HHH000400:使用方言:org.hibernate.dialect.HSQLDialect
2014年9月12日17:13:26.356 INFO [localhost-startStop-1] org.hibernate.engine.trans
action.internal.TransactionFactoryInitiator.initiateService HHH000268:Transacti
策略上:org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFacto
瑞
2014年9月12日17:13:26.374 INFO [localhost-startStop-1] org.hibernate.hql.internal
.ast.ASTQueryTranslatorFactory。HHH000397:使用ASTQueryTranslatorFactory

2014年9月12日17:13:26.498 INFO [localhost-startStop-1]。HV0000
01:Hibernate Validator 4.3.0.Final
2014年9月12日17:13:27.699 INFO [localhost-startStop-1] org.springframework.web.se
rvlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod映射为“ {[/ addP
等),方法= [获取],参数= [],标题= [],消费= [],生产= [],自定义= []}”到
公共java.lang.String com.zeroturnaround.snoutbook.controllers.AddPetForm.setu
pForm(org.springframework.ui.Model)
2014年9月12日17:13:27.700信息[localhost-startStop-1] org.springframework.web.se
rvlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod映射为“ {[/ addP
等],方法= [POST],参数= [],标题= [],消费= [],产生= [],自定义= []}”到
 公共java.lang.String com.zeroturnaround.snoutbook.controllers.AddPetForm.han
dleSubmit(com.zeroturnaround.snoutbook.form.PetForm,org.springframework.validati
on.BindingResult,org.springframework.web.bind.support.SessionStatus)
2014年9月12日17:13:27.701 INFO [localhost-startStop-1] org.springframework.web.se
rvlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod映射为“ {[/ pet /
{petId}],方法= [],参数= [],标题= [],消耗量= [],生产= [],自定义= []}“” ont
o公共java.lang.String com.zeroturnaround.snoutbook.controllers.SnoutContolle
r.pet(java.lang.Long,org.springframework.ui.Model)
2014年9月12日17:13:27.702信息[localhost-startStop-1] org.springframework.web.se
rvlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod映射为“ {[/ owne
rs],methods = [],params = [],headers = [],consumes = [],produces = [],custom = []}“”到发布
lic java.lang.String com.zeroturnaround.snoutbook.controllers.SnoutContoller.lis
tOwners(org.springframework.ui.Model)
2014年9月12日17:13:27.762信息[localhost-startStop-1] org.springframework.web.se
rvlet.handler.AbstractUrlHandlerMapping.registerHandler映射的URL路径[/ **]在
到类型[类org.springframework.web.servlet.resource.DefaultServle的处理程序
[tHttpRequestHandler]
2014年9月12日17:13:28.129信息[localhost-startStop-1] org.springframework.web.se
rvlet.FrameworkServlet.initServletBean FrameworkServlet'dispatcher':初始化
在4960毫秒内完成
2014年9月12日17:13:28.140信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployWAR部署Web应用程序存档D:\ Users \ b21090094 \
apache-tomcat-8.0.12 \ webapps \ Snoutbook-1.0.0-SNAPSHOT.war已在8,103中完成
多发性硬化症
2014年9月12日17:13:28.141信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b21090
094 \ apache-tomcat-8.0.12 \ webapps \ docs
2014年9月12日17:13:28.167信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b2
1090094 \ apache-tomcat-8.0.12 \ webapps \ docs已在26毫秒内完成
2014年9月12日17:13:28.168信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b21090
094 \ apache-tomcat-8.0.12 \ webapps \ examples
2014年9月12日17:13:28.537信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b2
1090094 \ apache-tomcat-8.0.12 \ webapps \ examples已在370毫秒内完成
2014年9月12日17:13:28.538信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b21090
094 \ apache-tomcat-8.0.12 \ webapps \ host-manager
2014年9月12日17:13:28.572信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b2
1090094 \ apache-tomcat-8.0.12 \ webapps \ host-manager已在34毫秒内完成
2014年9月12日17:13:28.573信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b21090
094 \ apache-tomcat-8.0.12 \ webapps \ manager
2014年9月12日17:13:28.633信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b2
1090094 \ apache-tomcat-8.0.12 \ webapps \ manager已在61毫秒内完成
2014年9月12日17:13:28.633信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b21090
094 \ apache-tomcat-8.0.12 \ webapps \ ROOT
2014年9月12日17:13:28.659信息[localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployDirectory部署Web应用程序目录D:\ Users \ b2
1090094 \ apache-tomcat-8.0.12 \ webapps \ ROOT已在26毫秒内完成
2014年9月12日17:13:28.663 INFO [main] org.apache.coyote.AbstractProtocol.start St
arting ProtocolHandler [“ http-nio-8080”]
2014年9月12日17:13:28.676 INFO [main] org.apache.coyote.AbstractProtocol.start St
arting ProtocolHandler [“ ajp-nio-8009”]
2014年9月12日17:13:28.682信息[主要] org.apache.catalina.startup.Catalina.start
服务器启动时间为8701毫秒

之后,我仍然收到错误404。


问题答案:

尝试使用 http://localhost:8080/Snoutbook-1.0.0-SNAPSHOT/owners

将war文件上传到tomcat的webapp文件夹时,默认情况下,tomcat使您可以使用war的名称访问webapp。然后,当您查看Web应用程序的初始值设定项(的替代项web.xml)时,它正在注册DispatcherServletwith
/映射。接下来,您看一下它所指向的控制器。因此,路径为:@RequestMapping``/owners

host:port+ war-name+ servlet-mapping+controller-mapping

等于

localhost:8080/+ Snoutbook-1.0.0-SNAPSHOT/+ /+owners

等于

http://localhost:8080/Snoutbook-1.0.0-SNAPSHOT/owners



 类似资料:
  • 我想学习一些完全基于注释的Spring MVC的基础知识。我从这个教程开始。 克隆存储库后 和生成文件

  • 我在Spring MVC中开发了一个应用程序,当我直接从eclipse通过run as->run On server运行它时,它工作得很好。 但是现在我想要将war部署到Tomcat文件夹并从那里运行它。我已经对此做了更改,war正在正确地部署到所需的tomcat文件夹中,但当我启动tomcat服务器并在浏览器中访问应用程序url时,它会给我404错误。服务器正在启动,没有任何异常。 下面是项目结

  • 我有一个spring-boot项目在IntelliJ IDE中运行良好,我试图将其部署在Heroku服务器上。该项目部署成功,但当我试图从POSTMAN访问它时,我得到了503错误:服务不可用。 以下是从Heroku成功部署后的日志记录: Heroku的申请日志: 有人能帮帮我吗?提前谢了。

  • 我想我也有类似的问题,但不知道如何修复Tomcat 404错误:源服务器没有找到目标资源的当前表示形式,或者不愿意透露该表示形式的存在 错误图像 我正在尝试使用docker和Tomcat构建简单的hello world spring boot应用程序。我用maven制作了war文件,然后将其放到$CATALINA_HOME/webapps/中,并通过执行[“CATALINA.sh”,“run”]来

  • 每次都会出现以下错误!有相同的修复方法吗? 2021-10-07T10:47:31.133956 00:00heroku[路由器]: at=错误代码=H10 desc="应用程序崩溃"方法=GET路径="/"主机=zturlshortener.herokuapp.comrequest_id=c2f90e55-52f5-4955-a1d6-4028456cfddb fwd="103.199.173.

  • 我已经在GCP上运行python 2.7应用程序大约5年了,并使用应用程序引擎启动器进行部署。 现在AEL已被弃用,我正试图通过gcloud部署,并得到“ERROR:(gcloud.app.deploy)” > 我运行了gCloud auth登录 但当我尝试重新部署我的应用程序时,我遇到了一个错误: 它没有给我太多继续下去的机会。想知道这是app.yaml的问题还是其他一些基本问题。 应用程序。y

  • 我正在Heroku上部署一个网站,但我在尝试运行“Heroku open”时收到了“应用程序错误”。 我相信我已经成功地将文件推送到Heroku中,这是我的“git推送heroku master”代码的一部分: 当我运行“heroku config-s | grep PATH”时,我得到了 我正在使用Ruby 1.9.3和Rails 4.0.0 文件夹 宝石环境 箱/轨道 垃圾箱/包裹 仓/耙

  • 部署过程中出错:部署应用程序[EnterpriseApplication1]时出现异常:UnsupportedClassVersionError:类mn.interactive.module.meta.dao.MetadataDao的主要或次要版本号不受支持,这些版本号大于Java Runtime Environment版本1.7.0_02中的版本号。有关详细信息,请参阅server.log。 将