我有一个Spring Boot项目,我在远程服务器上部署的项目。当我拨打http://109.206.178.66:8080/proxynator/
时 - 我可以看到index.html
,但是当我通过网址http://109.206.178.66:8080/proxynator/countries
呼叫其他控制器时 - 我有一个错误404 whith
描述:原始服务器没有找到目标资源的当前表示,或者不愿意透露该目标资源是否存在。
奇怪的是,因为当我在本地机器上启动这个项目时,一切正常。项目结构是:
来自catalina.out
文件的行:
SEVERE [http-nio-8080-exec-19] org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml在[file:/ opt / tomcat / webapps / proxynator]的应用程序web.xml文件中解析错误/ WEB-INF /网。
我的控制器:
@RestController
class MainController(val proxyRepo: ProxyRepo, val countryRepo:
CountryRepo) {
@GetMapping("/countries")
fun findCountries(): List<Country> = countryRepo.findAll()
@GetMapping("/proxies")
@ResponseBody
fun findProxies(@RequestParam countryid: Int): List<Proxy> =
proxyRepo.findAllByCountryid(countryid)
}
我在根软件包
上添加了配置类@Configuration
open class RestConfiguration {
@Bean
open fun mainController():MainController
= MainController()
}
但它不起作用。我不明白,为什么我可以通过irl index.html
看到http://109.206.178.66:8080/proxynator/
,但无法访问我的控制器。当我打包我的项目时,我有一些文件:
有什么建议吗?
答案 0 :(得分:0)
使用http://109.206.178.66:8080/countries访问您的api访问权限是错误的访问权限这是您的其余映射的正确途径,而不是http://109.206.178.66:8080/proxynator/countries
答案 1 :(得分:0)
为了解决这个问题,我编辑了我的Application类。
@SpringBootApplication
@EnableAutoConfiguration
open class Application: SpringBootServletInitializer(){
@Override
override fun configure(application: SpringApplicationBuilder?):
SpringApplicationBuilder {
return super.configure(application)
}
}
fun main(args: Array<String>) {
SpringApplication.run(Application::class.java, *args)
}
我是覆盖配置方法,一切正常! 希望它能为任何人节省时间!