源服务器未找到目标资源的当前表示形式,或者不愿意透露存在该表示形式。关于部署到雄猫

2022-09-02 09:10:28

我使用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 文件中的配置代码段

<!-- View Resolver -->
    <beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/pages/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

我正在尝试访问此控制器

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


    }

任何有想法的人都知道为什么在部署到tomcat时失败了?


答案 1

我多次与这个问题作斗争。

我当前使用的解决方案是 webapp(或您保存视图的文件夹(如 jsp)处于部署程序集中。

为此,文件夹。在默认情况下,它是Right click on the project > Build Path > Configure Build path > Deployment Assembly > Add(right hand side) > Folder > (add your jspsrc/main/webapp)

在你做完所有事情之后,你也可能得到这个错误,但在JSP上,你把锚标签放在旧的方式(如果它帮助其他人解决同样的问题,我会添加这个以防万一)。

我在jsp上有以下语法。 我一直看到问题中提到的错误。但是,将标记更改为下面显示的标记解决了该问题。<a href="/mappedpath">TakeMeToTheController</a>

<a href=" <spring:url value="/mappedpath" /> ">TakeMeToTheController</a>

答案 2

如果您正在开发弹簧引导应用程序,请将“SpringBootServletInitializer”添加到您的主文件中,如以下代码所示。因为没有SpringBootServlet初始化器Tomcat会将其视为正常应用程序,因此不会将其视为Spring Boot应用程序

@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);
    }
}

推荐