- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 sbt assembly 打包了我的 spring boot 应用程序,并在尝试运行我收到的 jar 时
Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is
org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
该项目在 Intellij 中运行良好。我的 build.sbt 在下面
lazy val news = (project in file("wherever")).
enablePlugins(DockerPlugin).
settings(commonSettings: _*).
settings(
name := "name",
mainClass in assembly := Some("mainEntry"),
test in assembly := {},
assemblyJarName := "jarName",
libraryDependencies ++= dependency1,
libraryDependencies ++= dependency2,
libraryDependencies += ScalaTest,
scalaSource in Compile := baseDirectory.value / "src/main/scala",
dockerfile in docker := {
val artifact: File = assembly.value
val artifactTargetPath = "/"
new Dockerfile {
from("openjdk:8-jre-alpine")
add(artifact, artifactTargetPath)
add(new File("./config/"),"/config")
cmd("java", "-jar", " -Denv=$env","jarName")
env("env","stage")
}
},
imageNames in docker := Seq(
ImageName("imageName")
)
)
我已经做了一些挖掘,它看起来像 Spring Boot requires the jar to contain nested jars (而不是像使用 sbt 程序集创建的 Uber jar)。所以,这给了我两个选择。使用 sbt 将我的 jar 打包为嵌套 jar,或者将 spring 配置为使用普通类加载器并从 Uber jar 加载。
我查看了嵌套的 jar sbt 插件,但我似乎找不到任何维护的东西(甚至在 Maven Central 中)。 This和 this都已经过时了,而且不在 Maven Central 中。有人对此有任何建议吗?
我也研究过配置 spring boot 以使用 uber jar,压倒性的 react 只是“使用 maven 插件”,这在这里不适用。
最佳答案
您需要在应用程序上提供嵌入式 servlet 容器工厂。它应该类似于以下内容:
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration
import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory
import org.springframework.boot.context.web.SpringBootServletInitializer
import org.springframework.context.annotation.{Bean, ComponentScan, Configuration, PropertySource}
/**
* Spring boot application configuration and servlet initializer.
*/
@Configuration
@ComponentScan(value = Array("com.foobusiness.foopackage"))
@PropertySource(Array("classpath:application.properties"))
@SpringBootApplication(exclude = Array(classOf[ErrorMvcAutoConfiguration]))
class Application extends SpringBootServletInitializer {
@Bean
def servletContainer: JettyEmbeddedServletContainerFactory = new JettyEmbeddedServletContainerFactory()
}
object Application {
def main(args: Array[String]): Unit = {
SpringApplication run classOf[Application]
}
}
上面显然使用了 Jetty,这意味着您还需要将 jetty-runner
作为库编译时依赖项包含在内。你的sbt构建文件在编译、运行或者打包的时候也需要使用上面的类:
mainClass in(Compile, run, packageBin) := Some("com.foobusiness.foopackage.Application"),
可以使用 sbt run
从命令行运行应用程序
关于带有 sbt : Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory 的 Spring 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40622142/
我正在尝试从 portlet 访问 Web 服务。我对 Spring 很陌生,所以我使用了本教程 --> http://spring.io/guides/gs/consuming-web-servic
尝试运行集成测试时,我遇到以下异常: org.springframework.context.ApplicationContextException: Unable to start Embedded
我有一个 Spock 测试用例,我想在其中加载 Spring 应用程序。我有一个非常基本的 Groovy 类,它是我的配置对象: @Configuration @EnableAutoConfigura
Maven 构建成功,但是当我尝试运行它时失败: Error: Could not find or load main class app.jar 我在 resources/META-INF/MANI
我有一个带有 Camel-HTTP 的 Spring Boot 集成应用程序。由于 Camel-HTTP 依赖于 geronimo-servlet Spring Boot 正在尝试加载 Web 应用程
我有一个 spring boot web 应用程序,我试图让它作为一个独立的应用程序运行,嵌入了 Tomcat 而不是使用容器。 我在 IntelliJ 中开发,我已经将运行配置设置为 Spring
当我尝试运行这个 Spring Boot 应用程序时,出现异常。 代码: package com.example.extract.boot; import org.springframework.b
Spring 启动 我试图在 intelliJ 中运行我的 Spring Boot 应用程序,但出现错误: . ____ _ __ _ _ /\\ /
尝试设置一个简单的 Web 应用程序调度程序。这是我的配置: 4.0.0 org.springframework scheduler 0.1.0 war
我正在尝试使用 Spring Data GemFire 将数据放入 GemFire 中。 我关注了这个link @Region("stockdata") public class StockInfo
我正在尝试通过在 Spring Boot 中运行一个测试容器来测试主要的 Spring Security 登录过程,使用我认为他们建议的东西。 这里是maven pom: 4.0.0
我已经使用 sbt assembly 打包了我的 spring boot 应用程序,并在尝试运行我收到的 jar 时 Application startup failed org.springfram
我正在尝试部署一个用 Springboot 制作的 Heroku 应用程序。我无法使用 Heroku 本地命令运行产品可执行 jar(而从 Eclipse 中我可以在本地启动应用程序并使用它)来部署它
我想做的是编写一个简单的 Spring Boot 微服务,它使用 STOMP 作为其 Web 套接字。 pom.xml: 4.0.0 MyMicroservice jar
我是一名优秀的程序员,十分优秀!