spring boot 2.3.8 tomcatservletwebserverfactory jar

jljoyd4f  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(246)

我有一个spring boot项目 TomcatServletWebServerFactory 具体如下:

  1. @SpringBootApplication
  2. public class InventoryApplication {
  3. public static void main(String[] args) {
  4. SpringApplication.run(InventoryApplication.class, args);
  5. }
  6. @Bean
  7. public ServletWebServerFactory servletContainer() {
  8. TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory () {
  9. @Override
  10. protected void postProcessContext(Context context) {
  11. SecurityConstraint securityConstraint = new SecurityConstraint();
  12. securityConstraint.setUserConstraint("CONFIDENTIAL");
  13. SecurityCollection collection = new SecurityCollection();
  14. collection.addPattern("/*");
  15. securityConstraint.addCollection(collection);
  16. context.addConstraint(securityConstraint);
  17. }
  18. };
  19. tomcat.addAdditionalTomcatConnectors(redirectConnector());
  20. return tomcat;
  21. }
  22. private Connector redirectConnector() {
  23. Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
  24. connector.setScheme("http");
  25. connector.setPort(8040);
  26. connector.setSecure(false);
  27. connector.setRedirectPort(8443);
  28. return connector;
  29. }
  30. }

当我从spring工具套件运行它时,它运行得非常完美,不会给出错误,但是当我将所述项目导出到jar文件并按如下方式运行时:

  1. java -jar InventorySpringApp.jar

我得到以下错误:

  1. Error: A JNI error has occurred, please check your installation and try again
  2. Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory
  3. at java.lang.Class.getDeclaredMethods0(Native Method)
  4. at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
  5. at java.lang.Class.privateGetMethodRecursive(Unknown Source)
  6. at java.lang.Class.getMethod0(Unknown Source)
  7. at java.lang.Class.getMethod(Unknown Source)
  8. at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
  9. at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
  10. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory
  11. at java.net.URLClassLoader.findClass(Unknown Source)
  12. at java.lang.ClassLoader.loadClass(Unknown Source)
  13. at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  14. at java.lang.ClassLoader.loadClass(Unknown Source)
  15. ... 7 more

pom.xml文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" 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. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.3.8.RELEASE</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.adhya</groupId>
  12. <artifactId>Inventory</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>Inventory</name>
  15. <description>Inventory Backend for Adhya</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
  19. </properties>
  20. <dependencies>
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-context</artifactId>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-web</artifactId>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-starter-data-jpa</artifactId>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-webflux</artifactId>
  36. </dependency>
  37. <dependency>
  38. <groupId>mysql</groupId>
  39. <artifactId>mysql-connector-java</artifactId>
  40. <scope>runtime</scope>
  41. </dependency>
  42. <dependency>
  43. <groupId>org.postgresql</groupId>
  44. <artifactId>postgresql</artifactId>
  45. </dependency>
  46. <dependency>
  47. <groupId>com.vladmihalcea</groupId>
  48. <artifactId>hibernate-types-52</artifactId>
  49. <version>2.10.2</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.springframework.boot</groupId>
  53. <artifactId>spring-boot-starter-data-mongodb</artifactId>
  54. </dependency>
  55. <dependency>
  56. <groupId>org.hibernate.validator</groupId>
  57. <artifactId>hibernate-validator</artifactId>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework.cloud</groupId>
  61. <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
  62. </dependency>
  63. <dependency>
  64. <groupId>org.springframework.cloud</groupId>
  65. <artifactId>spring-cloud-starter-sleuth</artifactId>
  66. </dependency>
  67. <dependency>
  68. <groupId>org.springframework.cloud</groupId>
  69. <artifactId>spring-cloud-starter-zipkin</artifactId>
  70. </dependency>
  71. <dependency>
  72. <groupId>com.google.code.gson</groupId>
  73. <artifactId>gson</artifactId>
  74. </dependency>
  75. <dependency>
  76. <groupId>com.fasterxml.jackson.core</groupId>
  77. <artifactId>jackson-databind</artifactId>
  78. </dependency>
  79. <dependency>
  80. <groupId>org.mindrot</groupId>
  81. <artifactId>jbcrypt</artifactId>
  82. <version>0.4</version>
  83. </dependency>
  84. <dependency>
  85. <groupId>org.springframework.boot</groupId>
  86. <artifactId>spring-boot-starter-test</artifactId>
  87. <scope>test</scope>
  88. <exclusions>
  89. <exclusion>
  90. <groupId>org.junit.vintage</groupId>
  91. <artifactId>junit-vintage-engine</artifactId>
  92. </exclusion>
  93. </exclusions>
  94. </dependency>
  95. <dependency>
  96. <groupId>io.projectreactor</groupId>
  97. <artifactId>reactor-test</artifactId>
  98. <scope>test</scope>
  99. </dependency>
  100. </dependencies>
  101. <dependencyManagement>
  102. <dependencies>
  103. <dependency>
  104. <groupId>org.springframework.cloud</groupId>
  105. <artifactId>spring-cloud-dependencies</artifactId>
  106. <version>${spring-cloud.version}</version>
  107. <type>pom</type>
  108. <scope>import</scope>
  109. </dependency>
  110. </dependencies>
  111. </dependencyManagement>
  112. <build>
  113. <plugins>
  114. <plugin>
  115. <groupId>org.springframework.boot</groupId>
  116. <artifactId>spring-boot-maven-plugin</artifactId>
  117. </plugin>
  118. </plugins>
  119. </build>
  120. </project>

我不明白为什么会发生这个错误。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题