http post方法

e5njpo68  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(472)

我有一个restapi,部署在jbosseap7.1上。当我点击网址

  1. http://localhost:8080/MyApp/group

在postman中,它给出“http method post is not supported by this url”错误,状态代码405。
当我在嵌入式tomcat服务器上部署这个api时,它运行得非常好。这是我的控制器

  1. @RestController
  2. public class RequestController {
  3. @Autowired
  4. private GroupService groupService;
  5. @PostMapping( "/group" )
  6. public GroupInfo fetchGroupInfo( @RequestBody GroupInfo groupInfo ) {
  7. long groupId = groupInfo.getGroupId();
  8. return groupService.getGroup( groupId );
  9. }
  10. }

主要类别

  1. @SpringBootApplication
  2. public class MyApp extends SpringBootServletInitializer {
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. SpringApplication.run(MyApp.class, args);
  8. }
  9. @Override
  10. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
  11. return builder.sources(MyApp.class);
  12. }
  13. }

pom.xml文件

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.my.package</groupId>
  6. <artifactId>MyApp</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>MyApp</name>
  9. <packaging>war</packaging>
  10. <properties>
  11. <java.version>1.8</java.version>
  12. </properties>
  13. <parent>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-parent</artifactId>
  16. <version>1.5.4.RELEASE</version>
  17. </parent>
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-web</artifactId>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-starter-tomcat</artifactId>
  26. <scope>provided</scope>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework.boot</groupId>
  30. <artifactId>spring-boot-starter-data-jpa</artifactId>
  31. </dependency>
  32. </dependencies>
  33. <build>
  34. <finalName>MyApp</finalName>
  35. <plugins>
  36. <plugin>
  37. <groupId>org.springframework.boot</groupId>
  38. <artifactId>spring-boot-maven-plugin</artifactId>
  39. </plugin>
  40. </plugins>
  41. </build>
  42. </project>

部署没有显示错误消息。不过,它确实显示了以下警告

  1. WARN [org.jboss.weld.deployer] (MSC service thread 1-4) WFLYWELD0013: Deployment optumRx-0.0.1-SNAPSHOT.war contains CDI annotations but no bean archive was found (no beans.xml or class with bean defining annotations was present).

类文件在jboss的部署文件夹中丢失。你能告诉我,我错过了什么吗?

c86crjj0

c86crjj01#

看起来我错过了项目中的servlet api依赖项。在我添加了依赖项之后,一切都很正常。嵌入的tomcat服务器有这个jar,因此,当我在tomcat上部署时,不需要它。

yptwkmov

yptwkmov2#

关于路径:pom.xmlmyapp中的构造在url中没有说明路径,而是关于工件的名称。尝试使用http://localhost:8080/组(不带myapp)
关于其他:如果要在jboss上部署,必须在pom.xml中排除tomcat:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-tomcat</artifactId>
  8. </exclusion>
  9. </exclusions>
  10. </dependency>

关于cdi警告-尝试在myapp类上使用@componentscan(basepackages=“your.package”)

相关问题