阿里云短信服务报错org.json.JSONArray.iterator()Ljava/util/Iterator

maven依赖如下:

        <!-- 阿里云短信sdk -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.7.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.1.0</version>
        </dependency>

单元测试发短信成功,工程起来之后,调用接口报如下错误:

java.lang.NoClassDefFoundError: com/aliyuncs/profile/DefaultProfile
    at com.esic.commonservice.sms.aliyun.AliyunSmsSendImpl.send(AliyunSmsSendImpl.java:43)
    at com.esic.commonservice.controller.SmsController.sendShortMessage(SmsController.java:333)
    at com.esic.commonservice.controller.SmsController$$FastClassBySpringCGLIB$$4bab3b60.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:86)
    at com.esic.utils.web.ControlAspect.doAround(ControlAspect.java:207)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:626)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:680)
    at com.esic.commonservice.controller.SmsController$$EnhancerBySpringCGLIB$$8553ee48.sendShortMessage(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:208)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:135)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:859)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:769)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:970)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:904)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:971)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:874)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:848)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

找不到DefaultProfile类,包已经在maven中引入了。

再次打包执行,报错如下:

java.lang.NoSuchMethodError: org.json.JSONArray.iterator()Ljava/util/Iterator;
    at com.aliyuncs.regions.LocalEndpointResolver.<init>(LocalEndpointResolver.java:39)
    at com.aliyuncs.profile.DefaultProfile.<init>(DefaultProfile.java:72)
    at com.aliyuncs.profile.DefaultProfile.getProfile(DefaultProfile.java:209)
    at com.esic.commonservice.sms.aliyun.AliyunSmsSendImpl.send(AliyunSmsSendImpl.java:43)
    at com.esic.commonservice.controller.SmsController.sendShortMessage(SmsController.java:333)
    at com.esic.commonservice.controller.SmsController$$FastClassBySpringCGLIB$$4bab3b60.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:86)
    at com.esic.utils.web.ControlAspect.doAround(ControlAspect.java:207)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:626)

经过排查,好像是maven镜像仓库中阿里的jar包存在问题。

在http://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core 中查看最新版本,改为依赖最新版本的jar。

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.0.2</version>
        </dependency>

再次运行测试,问题解决。

{"code":"OK","requestId":"5A6A8162-99D0-4311-8041-2FD17FC9F363","bizId":"146707233133591126^0","message":"OK"}

原文地址:https://www.cnblogs.com/iiot/p/9404360.html

时间: 2024-07-29 07:03:12

阿里云短信服务报错org.json.JSONArray.iterator()Ljava/util/Iterator的相关文章

调用阿里云短信服务

package com.example.demo.untils; /** * Created by JQY on 2019/5/15 */ import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v20170525.Send

Zabbix 3.4.3 使用阿里云短信服务进行报警

一.阿里云短信服务 有时候微信报警或者邮寄报警我们可能会有遗忘,今天我主要介绍使用阿里云的短信服务进行短信报警. 1.1.首先开通阿里云短信服务 1.2 创建签名 签名用途选择:公众号或小程序的全称或简称 就可以了. 1.3 创建短信模板 1.4 创建发送脚本 创建脚本sendsms.py,放到 zabbix 脚本路径,记得在配置文件开启AlertScriptsPath=路径,我们向脚本传递两个参数,一个是手机号,一个是信息,信息里面包含三个字段(主机IP,时间,内容),由我们下面的 Media

阿里云短信服务调用例子-Python

阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是python3版本的安装方式) pip install aliyun-python-sdk-core-v3 阿里云官方调用例子 #!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyun

yii2 阿里云 短信服务 aliyun_dysms [ 2.0 版本 ]

安装 1 composer require "saviorlv/yii2-dysms:dev-master" or添加下列代码在composer.json文件中并执行composer update 操作 1 2 3 4 5 { "require": { "saviorlv/yii2-dysms":"dev-master" } } 设置方法 全局使用 在config/main.php配置文件中定义component配置信息 1

使用阿里云短信服务发送短信验证码

阿里云短发服务使用流程: 1.在阿里云上完成短信服务的购买. 2.导入相关的jar包. <!-- 阿里云短信服务 --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.1.0</version> </dependency> <!-- 阿里云短

阿里云短信服务(JAVA)

一,前言 ? 短信验证码想必大家都不陌生,在很多网站,APP中都有使用到.比如登录,注册,身份校验等场景.不过通常情况下,短信服务都是外包给第三方公司的,接下来向大家分享如何使用阿里的短信服务. 二,云通信 ? 阿里云官网:https://www.aliyun.com/ ? 忘记说了,没有账号的可以直接使用阿里旗下的任何一款账号进行登录,支付宝,淘宝,钉钉等都可以,或者也可以单独进行注册,这里就不再讲述如何注册了. ? 登录成功以后,首页如下,在上方搜索框中搜索短信服务: ? ? 1,点击短信服

阿里云短信服务验证码模板

<?php namespace app\api\controller; use think\Db; use think\Request; use think\Controller; /** * 阿里云短信验证码发送类 * @author Administrator * */ class Smscode { // 保存错误信息 public $error; // Access Key ID private $accessKeyId = ''; // Access Access Key Secret

阿里云短信服务Java版

短信服务管理平台 https://dysms.console.aliyun.com/dysms.htm java短信发送API    https://help.aliyun.com/document_detail/55284.html?spm=5176.10629532.106.1.614b1cbe9VbjhP 过程注册信息API都有 1.发送短信实现类 package com.xmg.p2p.base.service.impl; import org.springframework.beans

zabbix利用阿里云短信服务添加短信报警

注册阿里云,在短信服务里申请短信签名 签名名称会在脚本中用到. 申请短信模板 模板CODE会在脚本中用到,模板内容要添加参数,即zabbix传来的报警内容. 创建AccessKey 使用阿里云api需要访问秘钥,在访问控制页面-->用户管理-->新建用户 第一次生成AccessKey时会给你密码,AccessKey ID和密码脚本里会用到. 编写报警脚本 # vim /usr/lib/zabbix/alertscripts/sendSMS.py #!/usr/bin/env python2 #