【问题标题】:Patching Jersey to use asm-4修补 Jersey 以使用 asm-4
【发布时间】:2012-09-26 10:53:24
【问题描述】:

这是我在 Google App Engine (Twitter Conversation) 上进行的 Twitter 讨论的后续帖子

问题在于 Jersey 和 GAE 不能与 datanuceleus 2.0 一起使用,因为 GAE 需要 ASM 4.0 而 Jersey 需要 3.1。此处提供了详细说明和简单的解决方案:GAE and Jersey Problem description

Stackoverflow 上有几篇关于问题的帖子,所以我打开了这个帖子与 Google 的团队合作来解决这个问题。

我只是从 Datanuceleus 2.0 切换到 1.0,Jersey 又开始工作了。你有什么其他的建议?尤其是因为 2.0 非常好用。

您好,

马里奥

【问题讨论】:

    标签: java google-app-engine rest google-cloud-datastore jersey


    【解决方案1】:

    另一种解决方案是使用 Jersey 的 1.18.1 版本,它不再依赖于 asm 3.0 并且包含一个重新打包的 asm 版本,您可以在这里查看:http://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle/1.18.1 这将在 GAE 中工作。

    【讨论】:

      【解决方案2】:

      您应该尝试jarjar,它将一个 jar 嵌入另一个 jar 并在字节码级别修复代码引用。

      查看这篇精彩的博文:http://blog.harrywye.com/post/30160964741/running-java-jersey-with-jdo-3-0-on-google-app-engine

      【讨论】:

        【解决方案3】:

        正如@peter-knego 所说,使用jarjar 真的很简单,你仍然可以使用JDO/JPA > 1.0

        1. 下载jarjar
        2. 创建一个文本文件:testrules.txt,内容如下:

        规则 org.objectweb.asm.** org.objectweb.asm3.@1

        1. 使用 asm-3.1.jar 和 jersey-server-1.1.5-ea-SNAPSHOT.jar(或任何您拥有的)执行以下命令:

        java -jar jarjar-1.4.jar 进程 testrules.txt asm-3.1.jar asm-3.1r.jar

        java -jar jarjar-1.4.jar 进程 testrules.txt jersey-server-1.1.5-ea-SNAPSHOT.jar jjersey-server-1.1.5r-ea-SNAPSHOT.jar

        最后只需将 asm-3.1.jar 和 jersey-server-1.1.5-ea-SNAPSHOT.jar 替换为重新打包的库。

        我将它与 1.8.3 SDK 一起使用,它对我有用。

        参考here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-06
          • 2015-02-24
          • 1970-01-01
          • 2012-02-13
          • 1970-01-01
          • 2021-10-23
          • 2012-04-24
          • 1970-01-01
          相关资源
          最近更新 更多