当前位置: 首页 > 知识库问答 >
问题:

如何使用Java配置创建Spring RESTFul服务?

史淳
2023-03-14

我试图使用Java配置创建一个Spring4 RESTFul服务,并将其部署到Tomcat。但我无法到达终点。我错过了什么?这就是我所拥有的。

public class Greeting {
    private BigInteger id;
    private String text;

    //setters and getters
}
@Controller
public class GreetingController {

  private static BigInteger nextId;
  private static Map<BigInteger, Greeting> greetingMap;

  //have some code to store Greetings in greetingMap

  @RequestMapping(value = "/api/greetings", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
  public ResponseEntity<Collection<Greeting>> getGreetings() {
      Collection<Greeting> greetings = greetingMap.values();
      return new ResponseEntity<Collection<Greeting>>(greetings, HttpStatus.OK);
  }

}
@Configuration
@ComponentScan(basePackages = "org.example")
  public class GreetingConfiguration {

}
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <display-name>Spring Application</display-name>

  <servlet>
      <servlet-name>dispatcher</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextClass</param-name>
          <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
      </init-param>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>org.example.ws.configuration.GreetingConfiguration</param-value>
      </init-param>
      <init-param>
          <param-name>dispatchOptionsRequest</param-name>
          <param-value>true</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>

  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>org.example.ws.configuration.GreetingConfiguration</param-value>
  </context-param>

  <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>

  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

我被派往Tomcat。Tomcat开始很好。我试着点击它http://localhost:8080/api/greetings,它给了我404。我错过了什么?

谢了!

共有1个答案

督阿苏
2023-03-14

您正在结合XML和Java配置。因此,您需要告诉Spring通过以下两种方法之一来获取控制器注释:

  1. 配置类中的@enableWebMVC
  2. 或,用XML表示
 类似资料:
  • 如何正确地为minikube集群中的kubernetes pod和服务编写yaml配置,并在docker上提供一个要求:容器的80端口必须可从主机访问。具有节点端口的解决方案未按预期工作: 标签应用:容器上设置的blogapp。您可以显示nginx映像的正确配置吗?例如,可以从主机访问端口。

  • 问题内容: 这听起来像是一个非常笼统的问题,但这是正确的。 我有一个要求,以创建我的应用程序配置脚本,将生成的这种配置的结果(基本,,)。我的问题是,我应该从哪里开始构建?有没有我可以效仿的例子? 问题答案: 要创建标准的“配置”脚本,您需要GNU autoconf。您可能还需要GNU automake和libtool。 有大量的文档和指导。谷歌搜索“ autoconf automake howt

  • 我正试图在谷歌云平台上创建一个服务账户,该账户只能访问谷歌驱动API。然而,我根本找不到这个角色: 此外,如果我创建了一个“通用服务帐户”,那么该用户可以添加实例等。这在过去是一个可怕的安全问题,因为拥有该密钥的用户实际上创建了未经授权的实例(因此出现了上述问题)。 我该如何创建一个可以访问Google Drive API的服务帐户,而不是别的?

  • 问题内容: 在创建用户个人资料系统时,我需要一些帮助。我希望它像Facebook或Myspace,在地址后仅包含用户名,没有问号,例如。我已经完成了所有注册,日志记录脚本等工作,但是如何使用上面的URL示例“ / username”转到配置文件? 问题答案: 您将需要创建一个mod重写,它采用第一个目录并将其作为$ _GET参数传递。 尝试这个: 那应该将’/’之后的内容重写为index.php?

  • 这段配置通过上下文进行扫描--我用调试器检查了它。问题可能出在哪里?

  • 问题内容: 一般来说,我刚接触Java和Android编程,但是我想创建一个小型Java库,以便在普通(非Android)Java应用程序和Android应用程序之间共享一些代码;所以我的问题是用Eclipse创建普通Java库的最佳方法是什么? 我在任何地方都找不到从Eclipse创建新的Java库项目的选项。这是否意味着我必须使用普通的Java应用程序作为起点?因为这也将用于普通的Java应用