无法运行Spring Roo shell - "无法解决..缺少需求.. package = javax.xml ..."

时间:2014-09-11 01:33:10

标签: java spring spring-mvc

我尝试从Spring's guide设置Spring Roo,但我收到以下错误。我怀疑它与this bug概述的Java 8兼容性有关,但我对如何继续解决此问题表示阻止。

以下是我的错误示​​例:

ERROR: Bundle com.github.antlrjavaparser.antlr-java-parser [3] Error starting file:/home/luca        at java.lang.Thread.run(Thread.java:745)
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.support.osgi [70]: Unable to resolve 70.0: missing requirement [70.0] package; (&(package=org.springframework.roo.support.ant)(version>=1.2.0)(!(version>=2.0.0))) [caused by: Unable to resolve 69.0: missing requirement [69.0] package; (package=javax.xml.namespace)]
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
        at java.lang.Thread.run(Thread.java:745)
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.uaa [71]: Unable to resolve 71.0: missing requirement [71.0] package; (&(package=org.springframework.roo.shell)(version>=1.2.0)(!(version>=2.0.0))) [caused by: Unable to resolve 64.0: missing requirement [64.0] package; (package=javax.xml.parsers)]
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
        at java.lang.Thread.run(Thread.java:745)
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.url.stream.jdk [73]: Unable to resolve 73.0: missing requirement [73.0] package; (&(package=org.springframework.roo.shell)(version>=1.2.0)(!(version>=2.0.0))) [caused by: Unable to resolve 64.0: missing requirement [64.0] package; (package=javax.xml.parsers)]
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
        at java.lang.Thread.run(Thread.java:745)
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.wrapping.antlr4-runtime [74]: Unable to resolve 74.0: missing requirement [74.0] package; (package=javax.imageio)
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
        at java.lang.Thread.run(Thread.java:745)
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.wrapping.bcprov-jdk15 [76]: Unable to resolve 76.0: missing requirement [76.0] package; (package=javax.crypto)
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
        at java.lang.Thread.run(Thread.java:745)
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.uaa.client [81]: Unable to resolve 81.0: missing requirement [81.0] package; (package=javax.xml.parsers)
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
        at java.lang.Thread.run(Thread.java:745)
:

另外,我使用的是Java 8:

[lucas-ThinkPad-W520]/home/lucas$ java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

这是我的Maven版本:

[lucas-ThinkPad-W520]/home/.../springsource/spring-roo-1.2.5.RELEASE$ mvn -version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_20, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-35-generic", arch: "amd64", family: "unix"

如果重要的话,我正在运行Ubuntu 14.04。有关如何进行的任何建议都会有所帮助。另外,如果可能的话,我更愿意继续使用Java 8。

2 个答案:

答案 0 :(得分:9)

希望这有助于某人,但我终于明白了 - 详细信息发布在错误报告页面上的论坛中:http://forum.spring.io/forum/spring-projects/roo/106193-error-staring-the-roo-shell

我下载了Apache Felix Framework Distribution here,并且从felix发行版中,我将文件bin/felix.jar移动到spring-roo.1.2.5.RELEASE/bin。在那之后,一切正常!

希望这有助于某人!

答案 1 :(得分:0)

实际上,它可能需要完整的JDK ...您正在使用JRE。

自动更新Java后会发生此错误,这会意外将Java切换到JRE。

(以及您提供的链接中的事件... JDK / JRE的原因是第一个sugestino)