Tapestry 5.3教程和Eclipse Kepler:无法加载RegistryStartup服务

时间:2014-04-04 19:21:57

标签: eclipse jetty tapestry

我正在尝试关注the official Tapestry tutorial

以下步骤很好:

  • 启动mvn jetty:run(从命令行)
  • 启动mvn eclipse:eclipse -DdownloadSources = true
  • 在Eclipse中导入项目
  • 从Eclipse中导入的项目配置新的Jetty配置

但是一旦我从Eclipse运行配置,我就会收到一个错误,其日志为here。 (相关部分,据我说:

ioc.Registry Error building service proxy for service 'RegistryStartup'

另外,请注意我的问题与this post中的问题不同:事实上,我已经设法在Eclipse中设置了Jetty 6。

我的操作系统是Ubuntu 13.10 64位。

在ubuntu上我已经安装了Maven 3.1.1

我正在使用Eclipse Kepler Service Release 2

我安装了jetty插件(RunJettyRun)1.3.2(Jetty 6)。

此外,在Eclipse中我设置了补丁以使用java8运行时。

2 个答案:

答案 0 :(得分:2)

JVM参数似乎不是导致此问题的原因。

jdk8 compatibility guide确实列出了您可能必须设置为在Java 7中运行大型应用程序的已删除选项。尽管如此,这些小型示例应用程序仍可正常运行而不使用此设置。在Java 8中,不再需要设置这些选项:

  

命令行标记PermSizeMaxPermSize已被删除并被忽略。

完整堆栈跟踪表明 plastic 库中的字符码操作不兼容。引发根异常是因为库ClassReader包含此检查,并且它似乎并不关心应用程序编译的版本:

// checks the class version
if (readShort(6) > Opcodes.V1_7) {
    throw new IllegalArgumentException();
}

答案 1 :(得分:1)

问题在于tapestry框架需要特殊的java虚拟机设置,从Java8开始会被忽略。

因此,我从构建路径中删除了java 8,并改为设置java 7.