我无法从java服务器端(java servlet)获取签名

我无法从java服务器端(java servlet)获取签名,java,cloudinary,Java,Cloudinary,我在服务器端(Javaservlet)获取签名,将其传递给html客户端。 代码如下: Cloudinary cloudinary = new Cloudinary(Cloudinary.asMap("cloud_name", "dvg8fiorp", "api_key", "742866863611915", "api_secret", "zF-GJqVyWjih_MqQGsYeSOVVmJ8")); String timestamp = (new Long(System.cu

我在服务器端(Javaservlet)获取签名,将其传递给html客户端。 代码如下:

    Cloudinary cloudinary = new Cloudinary(Cloudinary.asMap("cloud_name", "dvg8fiorp", "api_key", "742866863611915", "api_secret", "zF-GJqVyWjih_MqQGsYeSOVVmJ8"));
    String timestamp = (new Long(System.currentTimeMillis() / 1000L)).toString();
    Map<String, Object> params = new HashMap<String, Object>();
    Map options = Cloudinary.emptyMap();
    boolean returnError = Cloudinary.asBoolean(options.get("return_error"), false);
    String apiKey = Cloudinary.asString(options.get("api_key"), cloudinary.getStringConfig("api_key"));
    if (apiKey == null)
        throw new IllegalArgumentException("Must supply api_key");
    String apiSecret = Cloudinary.asString(options.get("api_secret"), cloudinary.getStringConfig("api_secret"));
    if (apiSecret == null)
        throw new IllegalArgumentException("Must supply api_secret");
    params.put("callback", "http://localhost:8080/SimpleServlet/js/cloudinary_js/html/cloudinary_cors.html");
    params.put("timestamp", timestamp);
    String expected_signature = cloudinary.apiSignRequest(params, apiSecret);
Cloudinary Cloudinary=new Cloudinary(Cloudinary.asMap(“cloud_name”、“dvg8fiorp”、“api_key”、“742866863611915”、“api_secret”、“zF-GJqVyWjih_mqgsyesovmj8”);
字符串时间戳=(新长(System.currentTimeMillis()/1000L)).toString();
Map params=新的HashMap();
Map options=Cloudinary.emptyMap();
boolean returnError=Cloudinary.asBoolean(options.get(“return\u error”),false);
字符串apiKey=Cloudinary.asString(options.get(“api_-key”)、Cloudinary.getStringConfig(“api_-key”);
if(apiKey==null)
抛出新的IllegalArgumentException(“必须提供api_密钥”);
字符串apiSecret=Cloudinary.asString(options.get(“api_secret”)、Cloudinary.getStringConfig(“api_secret”);
if(apiSecret==null)
抛出新的IllegalArgumentException(“必须提供api_机密”);
参数put(“回调”http://localhost:8080/SimpleServlet/js/cloudinary_js/html/cloudinary_cors.html");
参数put(“时间戳”,时间戳);
字符串应为\u signature=cloudinary.apisingrequest(params,apiSecret);

不幸的是,最后一行代码失败了,我不知道如何获取签名将其传递给html客户端。首先,请注意,您的API机密不应公开。我强烈建议您从安全设置页面生成新的密钥对或API密钥和密码

第二,这实际上生成了正确的签名,我成功地上传了它

为了进一步了解这个问题:

  • 您得到了什么样的错误响应
  • 请分享您的上传请求代码
这是服务器的响应:

java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.join(Ljava/util/Collection;Ljava/lang/String;)Ljava/lang/String;
com.cloudinary.Cloudinary.apiSignRequest(Cloudinary.java:93)
us.souther.simple.UploadServersideServlet

我解决了我的问题。这个问题是由commons-lang-2.1.jar引起的。我在类路径中添加了一个更高版本,并解决了它。非常感谢你帮我问候Roberto