请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

在启动Tomcat之后用Restlet测试用户登录功能时总是返回404

在启动Tomcat之后用Restlet测试用户登录功能时总是返回404,是不是我的项目部署有问题?如何解决?(我的加载信息对比老师的少了很多),如下是完整日志信息

PS:我看到下面有个提示说tomcat-servlet-api-7.0.76.jar未加载成功,是否是这个原因?

九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/7.0.76
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Mar 9 2017 13:49:01 UTC
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         7.0.76.0
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 8.1
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            6.3
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             C:\Program Files\Java\jre7
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.7.0_80-b15
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:\apache-tomcat-7.0.76
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.config.file=C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall\conf\logging.properties
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote=
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.port=1099
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.ssl=false
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.rmi.server.hostname=127.0.0.1
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\apache-tomcat-7.0.76\endorsed
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\apache-tomcat-7.0.76
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.io.tmpdir=D:\apache-tomcat-7.0.76\temp
九月 02, 2017 7:45:58 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Java\jdk1.8.0_101\bin;C:\Program Files\Java\jdk1.8.0_101\jre\bin;C:\Program Files (x86)\Calibre2\;C:\MongoDB\bin;C:\Maven\apache-maven-3.3.9\bin;C:\Python;D:\mySQL\bin;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\gradle-4.0.1\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin;C:\Users\Jupiter-Lee\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Heroku\bin;C:\Users\Jupiter-Lee\AppData\Roaming\npm;.
九月 02, 2017 7:45:58 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
九月 02, 2017 7:45:58 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 598 ms
九月 02, 2017 7:45:58 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
九月 02, 2017 7:45:58 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.76
九月 02, 2017 7:45:58 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
九月 02, 2017 7:45:58 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
九月 02, 2017 7:45:58 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 42 ms
九月 02, 2017 7:45:59 上午 org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
信息: validateJarFile(D:\apache-tomcat-7.0.76\webapps\ROOT\WEB-INF\lib\tomcat-servlet-api-7.0.76.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
九月 02, 2017 7:46:01 上午 org.apache.catalina.startup.TldConfig execute


正在回答

4回答

同学,你好

  1. 首先检查tomcat  webapps下面的目录,是否已经把项目发布到ROOT下

  2. 在pom.xml显示引入教程源码当中的servlet的包

  3. 在idea部署的时候,记得选择war的那个选项。

  4. 不部署项目,只启动tomcat,看看是否tomcat正常服务

  5. 通过以上进行排查,进一步的截图和日志请再发上来,让我们一起来解决。

0 回复 有任何疑惑可以回复我~
  • 提问者 星辰Iron #1
    非常感谢老师!
    回复 有任何疑惑可以回复我~ 2017-09-04 23:09:14
  • Geely 回复 提问者 星辰Iron #2
    不用客气~~
    回复 有任何疑惑可以回复我~ 2017-09-04 23:30:44
  • 还有我在用idea部署时候,不是说在商品模块url映射有个manager吗,tomcat下面有个项目就是manager,后来冲突了导致404
    回复 有任何疑惑可以回复我~ 2018-10-08 20:55:13
提问者 星辰Iron 2017-09-03 20:38:11

我看了一下tomcat  webapps目录下的ROOT文件夹,里面没有war包(如下图)https://img1.sycdn.imooc.com/szimg//59abf61f00012ae609580444.jpg


但是我通过maven的Lifecycle里面package把mmall.war打包成功了,直接放到tomcat webapps目录下的ROOT文件夹下面之后再启动Tomcat可以成功测试用户登录、注册等功能,但是在idea下面启动tomcat发送login.do请求却无响应(如下图)

https://img1.sycdn.imooc.com/szimg//59abf3670001363215300862.jpg

是不是我的idea配置有问题?


PS:另外我注意到我在添加artifact时有一步的内容(Available Elements)不太一样,会不会因为这个原因?

下图我的配置情况

https://img1.sycdn.imooc.com/szimg//59abf7920001ad9b14120842.jpg

跟老师你的配置不太一样

https://img1.sycdn.imooc.com/szimg//59abf792000147d110200713.jpg


0 回复 有任何疑惑可以回复我~
  • Geely #1
    应该是idea发布的问题,在webapps下面是不应该有war的,而是直接解压缩好的war包。
    
    这个配置应该发布war 而不是war exploded。
    
    
    
    http://learning.happymmall.com/QQ%E5%AD%A6%E4%B9%A0%E7%BE%A4%E5%A4%A7%E5%AE%B6%E5%85%B1%E4%BA%AB%E7%9A%84useful%E6%96%87%E6%A1%A3/%E5%85%B3%E4%BA%8Eidea%E7%9A%84tomcat%E6%B2%A1%E6%9C%89artifact%E4%BB%A5%E5%8F%8A%E6%B5%8B%E8%AF%95tomcat%E6%8A%A5404%E9%94%99%E8%AF%AF.docx
    
    同学,这个文档照着操作一下
    回复 有任何疑惑可以回复我~ 2017-09-03 21:49:00
  • 提问者 星辰Iron 回复 Geely #2
    多谢老师,我改成发布war就部署成功了。
    回复 有任何疑惑可以回复我~ 2017-09-03 23:00:18
  • Geely 回复 提问者 星辰Iron #3
    赞!部署成功就好。
    
    
    我给大家整理了这个,有问题可以来看看先找一下。 肯定有你想要的哈
    
    http://www.imooc.com/article/20193 
    
    课程求10分好评哇谢谢啦~~(づ ̄ 3 ̄)づ
    回复 有任何疑惑可以回复我~ 2017-09-03 23:06:09
Geely 2017-09-03 00:15:56

hi同学你好。

首先检查tomcat  webapps下面的目录,是否已经把项目发布到ROOT下


这个有检查没,发一下文件夹截图我看看。

还有一个是部署的正确方式

看这里


http://learning.happymmall.com/QQ%E5%AD%A6%E4%B9%A0%E7%BE%A4%E5%A4%A7%E5%AE%B6%E5%85%B1%E4%BA%AB%E7%9A%84useful%E6%96%87%E6%A1%A3/%E5%85%B3%E4%BA%8Eidea%E7%9A%84tomcat%E6%B2%A1%E6%9C%89artifact%E4%BB%A5%E5%8F%8A%E6%B5%8B%E8%AF%95tomcat%E6%8A%A5404%E9%94%99%E8%AF%AF.docx



0 回复 有任何疑惑可以回复我~
提问者 星辰Iron 2017-09-02 17:54:09

我重新生成了一遍mmall.war包,不过看日志信息我写的内容并没有被部署进war包

我的流程是:先编译生成war包,然后部署到Tomcat服务器里面,我感觉应该是我的打包方式有问题,不过还没找出来是哪里出了错

每回我启动Tomcat之后都会自动打开一个带有Hello World字样的页面(如下图),但是测试用户登录功能还是返回404页面

https://img1.sycdn.imooc.com/szimg//59aa7f560001424203520163.jpg

Tomcat服务器提示部署无效

D:\apache-tomcat-7.0.76\bin\catalina.bat run
[2017-09-02 05:41:24,744] Artifact mmall.war: Server is not connected. Deploy is not available.
Using CATALINA_BASE:   "C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall"
Using CATALINA_HOME:   "D:\apache-tomcat-7.0.76"
Using CATALINA_TMPDIR: "D:\apache-tomcat-7.0.76\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.7.0_80"
Using CLASSPATH:       "D:\apache-tomcat-7.0.76\bin\bootstrap.jar;D:\apache-tomcat-7.0.76\bin\tomcat-juli.jar"
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/7.0.76
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Mar 9 2017 13:49:01 UTC
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         7.0.76.0
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 8.1
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            6.3
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             C:\Program Files\Java\jdk1.7.0_80\jre
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.7.0_80-b15
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:\apache-tomcat-7.0.76
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.config.file=C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall\conf\logging.properties
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote=
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.port=1099
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.ssl=false
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.rmi.server.hostname=127.0.0.1
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\apache-tomcat-7.0.76\endorsed
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=C:\Users\Jupiter-Lee\.IntelliJIdea2016.1\system\tomcat\Unnamed_mmall
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\apache-tomcat-7.0.76
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.io.tmpdir=D:\apache-tomcat-7.0.76\temp
九月 02, 2017 5:41:25 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_80\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Java\jdk1.8.0_101\bin;C:\Program Files\Java\jdk1.8.0_101\jre\bin;C:\Program Files (x86)\Calibre2\;C:\MongoDB\bin;C:\Maven\apache-maven-3.3.9\bin;C:\Python;D:\mySQL\bin;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\gradle-4.0.1\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin;C:\Users\Jupiter-Lee\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Heroku\bin;C:\Users\Jupiter-Lee\AppData\Roaming\npm;.
九月 02, 2017 5:41:25 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
九月 02, 2017 5:41:25 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 504 ms
九月 02, 2017 5:41:25 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
九月 02, 2017 5:41:25 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.76
九月 02, 2017 5:41:25 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
九月 02, 2017 5:41:25 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
九月 02, 2017 5:41:25 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 40 ms
Connected to server
[2017-09-02 05:41:26,283] Artifact mmall.war: Artifact is being deployed, please wait...
九月 02, 2017 5:41:26 下午 org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
信息: validateJarFile(D:\apache-tomcat-7.0.76\webapps\ROOT\WEB-INF\lib\tomcat-servlet-api-7.0.76.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
九月 02, 2017 5:41:28 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[2017-09-02 05:41:28,512] Artifact mmall.war: Artifact is deployed successfully
[2017-09-02 05:41:28,512] Artifact mmall.war: Deploy took 2,229 milliseconds
九月 02, 2017 5:41:35 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\apache-tomcat-7.0.76\webapps\manager
九月 02, 2017 5:41:35 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:\apache-tomcat-7.0.76\webapps\manager has finished in 47 ms


0 回复 有任何疑惑可以回复我~
  • 同样的问题
    回复 有任何疑惑可以回复我~ 2017-09-05 09:14:22
  • 能告诉我你是怎样解决的
    回复 有任何疑惑可以回复我~ 2017-09-05 10:04:15
  • 提问者 星辰Iron 回复 光阴似水 #3
    照着老师的提示和我的做法试试吧
    回复 有任何疑惑可以回复我~ 2017-09-05 19:38:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信