为了得到我的基本的REST的API(只得到)的工作,我创造了这个设置:春天 - RestController调度
的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>app</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
下一个我有这个API控制器:
package packagename.controller.api;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import packagename.model.Home;
@RestController
public class HomeApiController {
@RequestMapping("/api/home")
public Home greeting() {
return new Home(1, "asdas");
}
}
和实际的家庭模式:
package packagename.model;
public class Home {
private final long id;
private final String content;
public Home(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
当我创建war文件并将其放入我的tomcat服务器的webapps文件夹中时,我打开“localhost:8080/webappname/api/home”。
接下来我得到404错误,但我不知道为什么。
任何人都可以帮助我这个设置? 感谢和问候!
您已将Spring Boot与传统Web应用程序混合使用。 RestController已经足够了,不需要指定web.xml。你需要的是去除web.xml并添加依赖项'spring-boot-starter-tomcat'并将其标记为'provided'并将'packaging'更改为'war'并且配置war插件不需要web.xml即可继续。 –
是的,你可以。在servlet设置中,请使用'/ **'而不是'/'作为你的'url-pattern'。 –
我增加了这个改变,但仍然404剩下.. –