我已经将web应用程序部署到Google应用程序引擎,并且我的web服务使用jersey 1.14框架。当我尝试使用或调用GAE上的web服务时,我得到了一个java.lang.IncompatibleClassChangeError: Implementing类。我到处搜索,发现jersey 1.14依赖于ASM3.1,谷歌应用引擎使用ASM4.0,我意识到我必须使用JarJar来打包依赖项来解决这个问题,但是我不知道如何使用JarJar来做到这一点。我发现的教程是非常神秘的,面向体验的programmers.So,有人可以发布一个面向初学者的教程,或者带我完成解决这个问题的步骤。
发布于 2015-11-08 17:33:35
好吧,这是一个相当晚的答案,但如果有人经过可能会有帮助。我将举一个例子来解释这一点。jarjar可用于重新打包java库。它可以用于更改名称空间,例如,需要将org.apache.common.codec更改为some_random_name.org.apache.common.codec。从jarjar download site下载jarjar,稍后将您想要更改的jar文件(myinjar.jar)和下载的jarjar粘贴到一个文件夹中,然后在myrules.txt中运行此命令java -jar jarjar-1.4.jar process myrules.txt myinjar.jar myoutjar.jar添加以下行
rule org.apache.commons.codec.** some_random_name.org.apache.commons.codec.@1输出myoutjar.jar将保存到同一文件夹中,您可以在工程中使用它,而不会发生任何冲突
https://stackoverflow.com/questions/12612726
复制相似问题