我正在研究如何为我的 Web 应用程序构建合适的结构。 它将是一个 Web 应用程序,作为附加的独立组件的平台。 组件必须能够使用@Controller 注释映射请求。
到目前为止,我了解到:
该平台将作为 .war 文件部署在 Tomcat 上。 平台类路径位置将包含 .jar 文件形式的组件。
我的问题是:
- 如何设置组件和平台,以便平台使用组件的@Controllers?
到目前为止,我已经在 Tomcat 上运行了 platform.war。它是基于注解的 Spring 配置。
我还有第一个组件,它是一个带有@Controller 注释和第一个映射的Java 类。出于某种原因,当我将此组件包含在平台的类路径中并尝试访问组件中映射的 url 时,应用程序返回 404 错误。在日志文件中,它显示“未找到 HTTP 请求的映射”,因此它不会初始化组件的 @Controller。
最佳答案
在您的 JAR 文件中,创建一个定义您的命名空间的包,即:“com.platformproject.web”。然后你需要做的就是将 JAR 文件放在 WEB-INF/lib 中(或者更好地使用 Maven Modules )并在启动时扫描注释:
MvcConfig.java
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = { "com.platformproject.web" })
public class MvcConfig extends WebMvcConfigurerAdapter { ... }
关于java - 动态 Web 应用程序 - 具有组件的平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32425676/