这是我在谷歌应用程序引擎(Twitter Conversation)上的推特讨论的后续帖子
问题是Jersey和GAE不能与datanuceleus 2.0协同工作,因为GAE需要ASM 4.0,而Jersey需要3.1。这里有详细的描述和简单的解决方案:GAE and Jersey Problem description
Stackoverflow上有几篇关于问题的帖子,所以我打开了这个帖子,与谷歌的团队合作解决这个问题。
我只是从Datanuceleus 2.0切换到1.0,Jersey又开始工作了。你还有其他的建议吗?特别是因为2.0将是非常好用的。
大家好,
马里奥
发布于 2014-05-17 18:09:58
另一个解决方案是使用1.18.1版的Jersey,它不再依赖于ASM3.0,并包含一个重新打包的asm版本,你可以在这里检查它:http://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle/1.18.1这将在GAE中工作。
发布于 2012-09-27 05:55:49
您应该尝试jarjar,它将一个jar嵌入到另一个jar中,并在字节码级别修复代码引用。
请参阅这篇优秀的博文:http://blog.harrywye.com/post/30160964741/running-java-jersey-with-jdo-3-0-on-google-app-engine
发布于 2013-08-21 23:15:32
正如@peter-knego所说,使用jarjar真的很容易,而且你仍然可以使用JDO/JPA > 1.0。
testrules.txt:规则org.objectweb.asm.** org.objectweb.asm3.@1
带有asm-3.1.jar和-
java -jar jarjar-1.4.jar process testrules.txt asm-3.1.jar asm-3.1r.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
https://stackoverflow.com/questions/12600095
复制相似问题