Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未调用SpringMVC控制器-但编译过程似乎很好_Java_Spring_Spring Mvc_Tomcat_Ant - Fatal编程技术网

Java 未调用SpringMVC控制器-但编译过程似乎很好

Java 未调用SpringMVC控制器-但编译过程似乎很好,java,spring,spring-mvc,tomcat,ant,Java,Spring,Spring Mvc,Tomcat,Ant,在使用SpringMVC框架时,我尝试创建一个小型JavaWeb项目。 为了构建我的项目,我使用ant。 编译过程似乎正常,但不幸的是,我的控制器类(和方法)从未被调用 这是我的解决方案文件 web.xml: ant构建文件:(build.xml) 为不工作的项目生成文件 最后是我的tomcat部署描述符:(helpme.xml) 在运行compileant脚本之后,一切看起来都很好。Tomcat按它应该做的那样启动,但不管我调用哪个URL,控制器都不会被触动。 这就是我所尝试的: 本

在使用SpringMVC框架时,我尝试创建一个小型JavaWeb项目。 为了构建我的项目,我使用ant。 编译过程似乎正常,但不幸的是,我的控制器类(和方法)从未被调用

这是我的解决方案文件

web.xml:

ant构建文件:(build.xml)


为不工作的项目生成文件
最后是我的tomcat部署描述符:(helpme.xml)


在运行compileant脚本之后,一切看起来都很好。Tomcat按它应该做的那样启动,但不管我调用哪个URL,控制器都不会被触动。 这就是我所尝试的:

  • 本地主机:8080/
  • 本地主机:8080/test
  • 本地主机:8080/test/page1
  • 本地主机:8080/page1
我寻找类似的话题,但没有找到解决这个问题的方法。也许你能帮我。 非常感谢。

改变

<url-pattern>/test/</url-pattern>
/test/

/
那么localhost:8080/page1至少可以正常工作

这是一个maven项目吗?如果是这样的话,您能给我们看一下pom.xml吗

大多数人使用Requestmapping“/”启动他们的Web应用程序


如果你想快速开始Spring MVC编程,没有垃圾或安装程序,请使用STS(Spring工具套件),尽管有人给了我一个难题,因为我喜欢这个工具说它带有一个预安装的tomcat,因此减少了体验,虽然这是真的,但最终你还是需要了解如何手动部署到tomcat

在您的情况下,如果您在控制器中有任何请求映射为
/test/
,那么

localhost:8080/test/  
它会起作用的

如果您想在/test/之后创建任何url,则需要如下操作:

localhost:8080/test/page1
您需要在web.xml中将其映射为:

/test/* 
正如我所评论的


在url/test/*中,
*
表示在/test/

之后的任何事情都不要使用Ant,Ya Wang的回答应该会有所帮助。您正在Tomcat
webapps
文件夹中部署web应用程序。那么,您能否提供已部署应用程序的文件夹结构。我怀疑部署不正确,或者Tomcat没有加载应用程序。您是否尝试过/test/*谢谢!更改url模式是可行的,但我确实希望它在调用“../test/”时运行。我不明白为什么这不起作用?!有什么想法吗?解决了!我不知道为什么-但是将模式更改为“/test/*”是有效的@CodeCannibal是的,如果你想让它做测试/某事,你会这么做。问题是/意味着所有的URL,如果你想测试/你需要做test/*这是测试之后的所有URL。现在你知道了。
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="c:\..myPath..\HelpMe\build\"  path="/helpme">

</Context>
<url-pattern>/test/</url-pattern>
<url-pattern>/</url-pattern>
localhost:8080/test/  
localhost:8080/test/page1
/test/*