我正在使用Java Spring创建REST Web服务.我已成功加载STS,示例详述如下:
"本指南将引导您完成使用Spring创建"hello world"RESTful Web服务的过程." http://spring.io/guides/gs/rest-service/
然而,该教程只是到目前为止..我想创建一个WAR文件,而不是一个包含servlet的自运行jar,并部署该WAR文件.然后我找到了本教程,并试图修改第一个教程build.gradle文件.
"将Spring Boot JAR应用程序转换为WAR" http://spring.io/guides/gs/convert-jar-to-war/
它似乎在.war文件中构建得很好..服务在我的TOMCAT实例的管理器中运行..但是一旦我尝试使用该服务,我就得到了404.
网址404'd
http://localhost:8080/gs-rest-service-0.1.0/dbgreeting?name=MyName
Run Code Online (Sandbox Code Playgroud)
我需要修改映射吗?
DataBaseController.java
@RequestMapping("/dbgreeting")
public @ResponseBody DataBaseGreeter dbgreeting(
@RequestParam(value="name", required=false, defaultValue="World") String name) {
return new DataBaseGreeter(counter.incrementAndGet(),String.format(template, name));
}
Run Code Online (Sandbox Code Playgroud)
现在我根据事物的混合创建了.war文件......并且担心我可能错过了一些东西.
我发现OSX上的XAMPP不包含webapp /文件夹,这迫使我改为加载Bitnami的Tomcat堆栈.人们通常会在此基础上在XAMPP和其他堆栈之间切换吗?或者我错过了在XAMPP中创建webapp文件夹的内容?
我已经创建了所需的配置/控制器类。但我不清楚应该如何编排这些类来运行 tomcat 实例。我知道对于 Spring Boot 来说,这是使用 SpringApplication.run(..) 的问题。但我正在尝试探索 Spring Boot 之前使用的替代方法。我对 Spring 框架有点陌生,所以请原谅我的无知。我也不使用任何 XML 配置,仅使用 Java
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer
{
@Override //....
protected String[] getServletMappings(){
return new String[] { "/" };
}
@Override //...
protected Class<?>[] getRootConfigClasses(){
return new Class<?>[] { RootConfig.class };
}
@Override //.....
protected Class<?>[] getServletConfigClasses(){
return new Class<?>[] { WebConfig.class };
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个控制器
@Controller
@RequestMapping("/")
public class HomeController {
@RequestMapping(method = RequestMethod.GET)
public String home(){
return "home";
}
Run Code Online (Sandbox Code Playgroud)
POM 文件:
<dependencies>
<dependency>
<groupId>org.springframework</groupId> …Run Code Online (Sandbox Code Playgroud)