我应该使用什么代替com.google.appengine.repackaged*?(这是一个关于IT技术的提问标题)

6
刚刚升级到1.6.1版本,收到警告说我不应该使用

标签。
com.google.appengine.repackaged

我应该使用什么替代品?

受影响的类具体包括:

com.google.appengine.repackaged.org.json.JSONException; com.google.appengine.repackaged.org.json.JSONObject; com.google.appengine.repackaged.com.google.common.util.Base64; com.google.appengine.repackaged.com.google.common.util.Base64DecoderException;


2
背景是,在1.6.1版本(以及相应的Google Plugin for Eclipse)之前,Eclipse可以轻松地访问App Engine SDK,让您使用实际上是我们保留更改权利的实现细节。为了避免突然出现的不愉快惊喜,我们安排了您正在收到的警告。 - Dave W. Smith
3个回答

3
对于org.json.*,您可以使用在http://json.org/找到的Java JSON库(虽然有其他更好的Java JSON库)。
对于com.google.common.*中的类,您可以在Google的Guava库中找到大多数类(尽管似乎没有Base64等)。

1
Base64现在已经包含在Guava中(自2013-02起)。 - Tom
Base64从未是Guava的一部分。如果您想使用Guava进行base64编码/解码,请改用com.google.common.io.BaseEncoding.base64()。 - Kurt Alfred Kluever

2
org.json.JSONException;
org.json.JSONObject;
com.google.common.util.Base64;
com.google.common.util.Base64DecoderException;

似乎 org.json 中不存在 JSONException。 - Lumpy
抱歉,我指的是appengine中包含的org.json没有它,一旦我包含了自己的jar文件,它就可以工作了。 - Lumpy
1
我怀疑那是 Google 内部开发的类之一,尚未打包到 Guava 的公共版本中。 - Mike Samuel
1
作为一名Guava开发者,Guava并不控制common.util。我不确定AppEngine的开发人员在做什么,但这不是Guava计划提供的内容。您是在为自己的目的使用Base64,还是需要它来构建AppEngine? - Louis Wasserman
个人而言,我需要这样做是为了在 GWT 项目中客户端使用 appengine 类。我非常希望将 base64 编码的字符串发送到客户端并在那里解码,这样我就不必以明文形式通过网络发送我的密钥。也许 Base64 编码器在 GWT 中使用起来太昂贵了,我将不得不想出自己的编码方式,但在客户端构造正确编码的密钥是最理想的。 - Ajax
显示剩余2条评论

2

在您的应用程序中,应该自己包含第三方jar文件,而不是依赖于com.google.appengine.repackaged

在您的情况下,您应该添加以下依赖项:


JSON 似乎可以工作,但 Apache Commons 不一样。可能是不同的 Commons 吗? - Lumpy
我相信Apache版本提供了类似的功能,请参见:http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html - proppy
为什么谷歌要重新打包第三方库? - ZiglioUK
找到了https://dev59.com/FnM_5IYBdhLWcg3wymc0。 - ZiglioUK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接