【问题标题】:My own WebPages are not shown on localhost我自己的网页没有显示在本地主机上
【发布时间】:2019-12-01 15:08:17
【问题描述】:

我有一个带有 Apache Wicket 的 Spring 应用程序(它是我的第一个 Spring 应用程序)及其自动生成的。如果我运行我的应用程序并在 localhost 上调用它,则只显示一个带有“TestDataManager 正在运行”的站点,而不是我在 Main 中调用的站点。我发现我在测试中有一个名为 ExampleController 的类,它不是来自我的。在这门课中,我们会看到 localhost 上显示的内容。但在我的 Main 中,我不叫这个 Class。

Somone 能说一下如何解决这个问题吗?

@SpringBootApplication
@RestController
public class Application extends WebApplication {


    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public Class<? extends Page> getHomePage() {
        return WhatToDoPage.class;
    }

}

示例控制器:

@RestController
public class ExampleController {

    @Value("TestDataManager is running")
    private String message;

    @GetMapping("/")
    public String indexGet() {
        return message;
    }
}

【问题讨论】:

  • 请阅读“如何创建minimal reproducible example”。然后使用edit 链接改进您的问题(不要通过 cmets 添加更多信息)。否则我们无法回答您的问题并为您提供帮助。你模糊的解释“我做了这个和那个”不足以帮助你。
  • 在静态 main 方法上放置 GetMapping 注释绝对没有意义。您必须正确了解 Spring MVC 的工作原理。这对这里来说太宽泛了。
  • 我告诉我是 Spring 新手
  • 因此正确学习它的重要性。

标签: java spring tomcat wicket


【解决方案1】:

Spring Boot 扫描类路径,找到 ExampleController 并将其注册为 REST 控制器 bean。

稍后当您调用/ 时,它会使用它来返回响应。由于您返回没有@GetMapping(produces = ...) 的字符串,因此它使用text/plain 作为响应内容类型。

Apache Wicket 不参与您的应用程序。我不确定你为什么使用/标记它。

【讨论】:

  • 公平地说,他的主类扩展了WebApplication 并实现了getHomePage(),因此他的类路径中确实有Wicket。他没有使用它,真的,但它就在那里
猜你喜欢
  • 2015-08-10
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 2022-11-30
  • 1970-01-01
相关资源
最近更新 更多