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

Java 6上的Spring Boot bootRun

谢麒
2023-03-14
   EmbeddedServletContainerAutoConfiguration.EmbeddedJetty:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.eclipse.jetty.webapp.WebAppContext' (OnClassCondition)
dependencies {
    compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.12'
    compile 'org.springframework.boot:spring-boot-starter-web', {
        exclude module: 'spring-boot-starter-tomcat'
        exclude group: 'com.fasterxml.jackson.core'
    }

    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.7.9' // last version for Java 6
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.7.9'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.9.1'

    providedCompile 'javax.servlet:javax.servlet-api:3.0.1'
    //providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'

    providedRuntime 'org.springframework.boot:spring-boot-starter-jetty', {
        exclude group: 'org.eclipse.jetty'
        exclude group: 'org.eclipse.jetty.websocket'
    }
    def JETTY8_VERSION = '8.1.22.v20160922'
    ['jetty-server', 'jetty-webapp', 'jetty-servlets', 'jetty-continuation', 'jetty-client',
            'jetty-http', 'jetty-util', 'jetty-io', 'jetty-servlet', 'jetty-xml', 'jetty-security'].each {
        providedRuntime "org.eclipse.jetty:$it:$JETTY8_VERSION"
    }
}
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.
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    ...
@Bean
EmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory() {
    try {
        def clazz = Class.forName('org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory')
        clazz.newInstance()
    } catch (NoClassDefFoundError cnfe) {
        null
    }
}

共有1个答案

江佐
2023-03-14

默认情况下,Spring Boot1.5需要Java7或更高版本才能运行。但是,在Java6上运行Spring Boot1.5是可能的,这在参考指南中有很好的说明。

在您的情况下,您想得太多了,这就像指定所需的Jetty版本一样简单。

ext['jetty.version'] = '8.1.22.v20160922'

dependencies {
    compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.12'
    compile 'org.springframework.boot:spring-boot-starter-web', {
        exclude module: 'spring-boot-starter-tomcat'
        exclude group: 'com.fasterxml.jackson.core'
    }

    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.7.9' // last version for Java 6
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.7.9'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.9.1'

    providedCompile 'javax.servlet:javax.servlet-api:3.0.1'

    providedRuntime 'org.springframework.boot:spring-boot-starter-jetty', {
        exclude group: 'org.eclipse.jetty.websocket'
    }
}

这样,Spring Boot将包含正确的版本,您不需要自己包含它们。

 类似资料:
  • 我想在Fedora 17上使用OpenJDK编译成Java 6。Fedora 17有OpenJDK7,而不是OpenJDK6。我可以使用-target 1.6-source 1.6从Java 7编译到Java 6,但要正确地进行编译(避免警告:[options]引导类路径未与-source 1.6一起设置),我还需要-bootclasspath指向Java 6 rt.jar文件。但是OpenJDK

  • 我java 6我可以声明如下数组列表 方法1:使用泛型,即

  • 问题内容: 我知道在此之前已经问过很多类似的问题,但是我认为这个问题有些不同:) 我正在编写一个maven报告插件,它将向用户列表发送电子邮件。我现在遇到的问题是,当我使用java5运行该代码时,该代码似乎运行良好,但使用java6失败。实际上,该插件是用Groovy编写的,并使用commons-email实用程序发送html消息: 该项目依赖于javax.mail:mail:1.4.1和java

  • 从这里可以清楚地看到,在Java中组成

  • 我在用 jre 1.6.0,nimbus-jose-jwt-8.20-jdk6.jar,bcprov-jdk15to18-166.jar。 我用EC算法和椭圆曲线P-512创建了一个密钥库和一个密钥对。如果我使用私钥对JWT进行签名,然后尝试使用公钥对其进行验证,那么一切都可以正常工作,但是除了签名之外,我还需要进行加密,以生成一个看不到有效负载的JWE。 我还在https://connect2i

  • 我正在尝试安装bindiff。当我尝试通过archive manager安装时,我收到了以下消息“依赖关系不可满足:sun-java6-jre”。(我正在运行ubuntu 12.10) 我已尝试添加存储库 这并没有奏效。 我目前也安装了java 7,并完成了sudo apt-get更新 我尝试了“sudo apt-get install sun-java6-jdk”,我收到了以下内容: sudo

  • 我在OS X上,一直在使用Oracle的Java1.8。为了安装,我确实必须安装Apple的旧Java 6,但至少命令似乎会失败,除非我更改环境变量以指向Java 6安装。 下面是我看到的输出: 对于我来说,为重写的最佳方法是什么?是否应该编辑?

  • Java7在类中引入了对ISO 8601格式的支持,通过字符(而不是大小写)。在Java6中支持这样的格式需要预处理,所以最好的方法就是这个问题。 这个新格式是(大写Z)的超集,还有两个其他变体: null null 请注意,上面的子类对象必须使用相应的基于模式进行初始化,也就是说,如果子类是,并且您希望解析符合模式的日期,那么您应该使用实例化为 在前面提到的问题中,建议使用regex来去掉“:”