【问题标题】:Tapestry 5.3 tutorial and Eclipse Kepler : RegistryStartup service can't be loadedTapestry 5.3 教程和Eclipse Kepler:无法加载RegistryStartup 服务
【发布时间】:2014-04-04 19:21:57
【问题描述】:

我正在尝试关注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

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

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

【问题讨论】:

    标签: eclipse jetty tapestry


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      所以,我从构建路径中删除了 java 8,并设置了 java 7。

      【讨论】:

      • 先生,您能否详细说明问题的具体情况?需要哪些 jvm 设置才能使其正常工作?
      • 抱歉,我在不久前就遇到了这个问题,因为我放弃了挂毯,也选择了 Eclipse Luna。但是您应该在 Tapestry 官方文档中找到这些设置:jumpstart.doublenegative.com.au/jumpstart6.10/tips.html
      • 我也搬到了 Luna,但我仍然致力于 Tapestry。我仍然看不到与这些 VM 参数的连接。你能说出你为什么这么认为吗?因为这将是一件非常小的事情要解决,但我认为问题背后存在更大的混乱。现在我想我必须回到 Java 7...
      • 事实上,我在 Oracle 文档中看到,一些 JVM 设置在 Java 8 中已被弃用。我不记得我在哪里看到的,但这就是我切换回 Java 7 的原因。跨度>
      • @archiehicox 我想我找到了那些删除的 vm 选项(以及问题的真正原因)。看我的回答
      猜你喜欢
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      相关资源
      最近更新 更多