gpt4 book ai didi

Spring 注释 Controller 无法与 Heroku 上的 Tomcated Embedded 一起使用

转载 作者:行者123 更新时间:2023-11-28 22:30:59 25 4
gpt4 key购买 nike

当我使用我的 WAR 时,我有 spring 注释 Controller 可以正常工作,但是当我尝试在本地和 Heroku 上运行嵌入式时,没有一个注释 Controller 在工作。我使用 mvc:view-controller 设置了一些页面,这些页面有效,但没有一个 component-scan Controller 有效。

package com.myapp.launch;

import java.io.File;

import javax.servlet.ServletException;

import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

String webappDirLocation = "src/main/webapp/";
Tomcat tomcat = new Tomcat();

//The port that we should run on can be set into an environment variable
//Look for that variable and default to 8080 if it isn't there.
String webPort = System.getenv("PORT");
if(webPort == null || webPort.isEmpty()) {
webPort = "8080";
}

tomcat.setPort(Integer.valueOf(webPort));

try {
tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("configuring app with basedir: " + new File("./" + webappDirLocation).getAbsolutePath());

try {
tomcat.start();
} catch (LifecycleException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

tomcat.getServer().await();


}

}

这是我的 spring 配置的一部分。

<mvc:view-controller path="/" view-name="home"/>
<mvc:view-controller path="/terms" view-name="terms"/>
<mvc:view-controller path="/privacy" view-name="privacy"/>

<context:component-scan base-package="com.myapp.controllers"/>

最佳答案

我发现这是因为我的 Controller 是 groovy,当我在本地运行 tomcat 时,这些 Controller 被编译为 make 步骤的一部分,但是当我启动 tomcat embedded 时,没有运行相同的过程。将执行目标添加到我的 gmaven 插件后,我能够毫无问题地运行它。

由于这些类是由 gmaven 编译的,因此 tomcat 能够获取它们。

关于Spring 注释 Controller 无法与 Heroku 上的 Tomcated Embedded 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com