IDEA下使用Tomcat无法接收到HTTP get消息,特来求助!

wonly3 2017-12-15 11:30:43

编译环境:Intellij IDEA 14.1.7
Tomcat 8.0.20
工程基于Maven,创建好工程并配置了Libraries,Facets,Artifacts以及Run/Debug启动配置,
在web.xml中增加了如下代码
<description>WebSrv</description>
<display-name>WebSrv</display-name>

<servlet>
<servlet-name>WebServTest</servlet-name>
<servlet-class>WebSrv.WebServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WebServTest</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
在工程WebSrv的java.WebSrv下增加文件WebServlet.java,并增加如下代码
package WebSrv;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class WebServlet extends HttpServlet {
@Override
public void init() throws ServletException {
super.init();
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
}
}
能够正常启动程序,但是 http://localhost:8080/Test? 访问,上面doGet无法收到消息;
我在web.xml中增加代码
<listener>
<listener-class>WebSrv.TomcatListener</listener-class>
</listener>
并在java.WebSrv下增加文件TomcatListener.java,包含代码
package WebSrv;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class TomcatListener implements ServletContextListener {
// @Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("开始启动web");
}
// @Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("关闭web");
}
}
启动后报错
[2017-12-15 11:22:25,563] Artifact AccWebSrv:war exploded: Artifact is being deployed, please wait...
15-Dec-2017 11:22:25.851 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Error listenerStart
15-Dec-2017 11:22:25.852 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
[2017-12-15 11:22:25,861] Artifact AccWebSrv:war exploded: Error during artifact deployment. See server log for details.

另外,以前做过一个没有用Maven的工程,在本机上运行是可以收到get消息的。当前工程依照老的工程做了比对并修改,但还是不行。
以前的工程 TomcatListener继承的函数可以加@Override,当前Maven工程里面的@Override要报错 @Override is not allowed when implementing interface method,所以注释掉了
请教大神看看,我是不是还有什么遗漏的步骤?
...全文
409 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonly3 2017-12-18
  • 打赏
  • 举报
回复
找到了原因,原来是项目设定的project输出路径是\out,maven输出路径是target。
wonly3 2017-12-16
  • 打赏
  • 举报
回复
引用 6 楼 lye2000000_super 的回复:
org.apache.catalina.core.StandardContext.startInternal Error listenerStart问题是你这里报错了。。。。不知道原因是什么。。。。
如果没有在web.xml里面用<listener>,就没有这个报错。更多时候都没有这个报错
  • 打赏
  • 举报
回复
org.apache.catalina.core.StandardContext.startInternal Error listenerStart问题是你这里报错了。。。。不知道原因是什么。。。。
wonly3 2017-12-15
  • 打赏
  • 举报
回复
引用 4 楼 lye2000000_super 的回复:
ServletContextListener 加这个做什么?看输出。是这个启动的时候出错了。如果没啥用就先去掉。看看是不是没问题了。
ServletContextListener只是本意是想启动和推出的时候有一些初始化和回收的处理,在这里只是用于检验web.xml是否生效。大部分时候都没有在web.xml里面用<listener>。也就是ServletContextListener没有生效,但是依然收不到get消息
  • 打赏
  • 举报
回复
ServletContextListener 加这个做什么?看输出。是这个启动的时候出错了。如果没啥用就先去掉。看看是不是没问题了。
wonly3 2017-12-15
  • 打赏
  • 举报
回复
引用 2 楼 wonly3 的回复:
[quote=引用 1 楼 lye2000000_super 的回复:] See server log for details先去看看是什么错误。。。。
哦!对了,Tomcat 8.0\logs下没有任何日志文件[/quote] 不知道在哪里还可以看到
wonly3 2017-12-15
  • 打赏
  • 举报
回复
引用 1 楼 lye2000000_super 的回复:
See server log for details先去看看是什么错误。。。。
哦!对了,Tomcat 8.0\logs下没有任何日志文件
  • 打赏
  • 举报
回复
See server log for details先去看看是什么错误。。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧