原始服务器没有找到目标资源的当前表示,或者不愿意透露存在该目标资源。 在部署到tomcat

我使用Spring和Eclipse IDE构建了一个应用程序。 当我从Eclipse IDE启动项目时,一切都很好但是当我将maven项目打包为war文件并部署到单独的tomcat时我有这个问题

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. 

这是我的xml文件中的配置代码段

      

我正在尝试访问此控制器

 @RequestMapping(value = {"/welcome", "/"}) public String defaultPage() { return "Web Service data successfuly consumed"; } 

有谁知道为什么这个部署到tomcat失败?

我多次努力解决这个问题。

我目前使用的解决方案是使用webapp(或保存jsp等视图的文件夹)处于部署程序集的状态。

要这样做,请Right click on the project > Build Path > Configure Build path > Deployment Assembly > Add(right hand side) > Folder > (add your jsp文件夹。默认情况下,它是src/main/webapp

在你做了一切正确的事情之后你也可能得到这个错误但是在JSP上你把锚标记旧的方式(如果它帮助其他人有同样的问题我添加这个错误)。

我在jsp上有以下语法。 TakeMeToTheController ,我一直看到问题中提到的错误。 然而,将标签更改为下面显示的标签解决了这个问题。

  ">TakeMeToTheController 

我在Spring Boot应用程序中工作时遇到了同样的错误,因为当作为Spring Boot运行时,很容易做localhost:8080/hello/World但是当你构建了工件并部署到Tomcat时,你需要切换使用localhost:8080//hello/World

如果您正在开发spring boot应用程序,请将以下代码中所示的“SpringBootServletInitializer”添加到主文件中。 因为没有SpringBootServletInitializer,Tomcat会将其视为普通应用程序,它不会将其视为Spring启动应用程序

 @SpringBootApplication public class DemoApplication extends *SpringBootServletInitializer*{ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DemoApplication .class); } public static void main(String[] args) { SpringApplication.run(DemoApplication .class, args); } } 

尝试在Eclipse中运行servlet(右键单击+“Run on Server”)我遇到了同样的问题:“HTTP状态:404 /描述:源服务器没有找到目标资源的当前表示或者不愿意披露一个存在。“ 添加index.html没有帮助,也没有改变tomcat的各种设置。

最后,我在一个意想不到的地方发现了问题:在Eclipse中,未设置选项“自动构建”。 因此,servlet没有被编译,并且没有文件“myServlet.class”被部署到服务器(在我的情况下在路径.wtpwebapps / projectXX / WEB-INF / classes / XXpackage /中)。 手动构建项目并重新启动服务器解决了问题。

我的环境:Eclipse Neon.3版本4.6.3,Tomcat版本8.5.14。,OS Linux Mint 18.1。

解决方案一:更改apache tomcat的版本(最新的一个是首选)(手动过程)。

解决方案二:安装最新的eclipse IDE并配置apache tomcat服务器(内部自动进程i,eclipse处理配置部分)。

自动化过程成功后,手动过程应运行良好。

在Eclipse中,转到Project – >在尝试执行之后自动单击build

我也面临同样的问题,我通过将web.xml文件和applicationcontext.xml文件放在WEB-INF文件夹中来解决它。

希望这可以帮助 :)

我遇到了同样的问题。

当我右键单击 – >在服务器上运行然后手动选择我的服务器它工作。

 Alt+Shift+X 

然后手动选择你的服务器。 它可能有所帮助。

如果它是maven项目,Maven Update将解决问题 – 右键单击​​Project – > Maven – > Update Project并正常启动项目。