Todos los productos
Search
Centro de documentos

Alibaba Cloud SDK:Java SDK FAQ

Última actualización: Sep 09, 2026

Preguntas y soluciones comunes para integrar y usar el SDK de Java de Alibaba Cloud.

Verificación del entorno

  • Tener instalado Java 1.8 o una versión posterior.

  • Que su red pueda alcanzar los endpoints de la API de Alibaba Cloud.

Problemas comunes

Problemas al pasar parámetros de AK.

Si el mensaje de error contiene alguno de los siguientes textos, significa que el AccessKey no se configuró correctamente:

  • SDK V2.0: Cannot invoke "com.aliyun.credentials.Client.getCredential()" because "this._credential" is null.

  • SDK V1.0: ErrCode: MissingAccessKeyId. ErrMsg: AccessKeyId is mandatory for this action.

Solución:

  1. Compruebe que ALIBABA_CLOUD_ACCESS_KEY_ID y ALIBABA_CLOUD_ACCESS_KEY_SECRET estén establecidos:

    Linux/macOS

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
    echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

    Windows

    echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
    echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

    Si se devuelven los valores correctos, la configuración es exitosa. De lo contrario, vuelva a configurarlos como se describe en Configure environment variables on Linux, macOS, and Windows systems.

  2. Revise su código en busca de errores relacionados con el AK.

    Ejemplo común incorrecto:

    Config config = new Config()
             .setAccessKeyId(System.getenv("yourAccessKeyID"))   
             .setAccessKeySecret(System.getenv("yourSecret")); 

    Ejemplo correcto:

    Config config = new Config()
            .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
            .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    Nota

    System.getenv() obtiene el ID y el secreto del AccessKey desde las variables de entorno.

    Importante

    No codifique de forma rígida su AccessKey en el código de producción. Esta práctica representa un riesgo de seguridad.

unable to get credentials from any of the providers in the chain : ...

Causa: Su proyecto utiliza el proveedor de credenciales predeterminado (como se muestra a continuación), pero no se configuró ninguno de los tipos de credenciales compatibles.

com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
        .setCredential(credential);

Solución:

  • Para usar un AccessKey directamente:

    com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
            // This example shows how to get the AccessKey ID from an environment variable.
            .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
            // This example shows how to get the AccessKey secret from an environment variable.
            .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));

    Para otros tipos de credenciales, consulte Manage access credentials.

  • Si desea seguir usando la credencial predeterminada, debe configurar cualquiera de los tipos de credenciales que admite default credential provider chain.

code 403, You are not authorized to do this operation. Action: xxxx.

D:\program_files\java\bin\java.exe ...
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
code: 403, You are not authorized to do this operation. Action: dysms:SendSms;Resource: acs:dysms::1360982977xxx:* request id: 70BA0B34-E61C-58C7-988B-4E20151492C3
https://api.alibabacloud.com/troubleshoot?q=NoPermission&product=Dysmsapi&requestId=70BA0B34-E61C-58C7-988B-4E20151492C3

El usuario, rol o grupo de usuarios de RAM que llama a la API no tiene el permiso obligatorio. El elemento Action:XXXX del mensaje de error indica la operación de API denegada. Por ejemplo, Action:dysms:SendSms significa que la cuenta carece de permiso para llamar a la API SendSms de Short Message Service.

Solución:

  1. Contacte a un administrador para crear una política de permisos personalizada basada en el siguiente documento: Create a custom permission policy.

    Nota

    Esta política solo permite llamadas a SendSms de Short Message Service (dysms). Reemplace el valor de Action por el servicio y la API que aparecen en su mensaje de error.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "dysms:SendSms",
          "Resource": "*"
        }
      ]
    }
  2. Otorgue permisos a la cuenta de RAM:

Error al importar dependencias de Maven: Could not find artifact com.aliyun:XX:XX

Descripción:

Maven no encuentra la dependencia especificada.

Solución:

Configure el repositorio central de Maven en su proyecto mediante uno de los siguientes métodos:

  • Agregue el siguiente contenido al archivo pom.xml:

    <repositories>
        <repository>
            <id>central</id>
            <url>https://repo1.maven.org/maven2</url>
        </repository>
        <repository>
            <id>nexus-noke</id>
            <url>http://nexus.noke.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
  • Agregue el siguiente contenido al archivo settings.xml:

    <settings>
        <!-- Existing settings -->
        
        <mirrors>
            <mirror>
                <!-- This id can be any unique identifier -->
                <id>central</id>
                <mirrorOf>central</mirrorOf>
                <name>Maven Central Mirror</name>
                <url>https://repo1.maven.org/maven2</url>
            </mirror>
        </mirrors>
    </settings>

java: Error: release version X not supported.

En IntelliJ IDEA, presione Ctrl+Alt+Shift+S para abrir Project Structure. Seleccione Modules y establezca Language Level para que coincida con su versión de JDK (por ejemplo, "8 - Lambdas, type annotations etc." para JDK 8). Haga clic en Apply y luego en OK.

java: Compilation failed: internal java compiler error.

En IntelliJ IDEA, vaya a File > Settings > Build, Execution, Deployment > Compiler > Java Compiler. Establezca Project bytecode version y Target bytecode version para que coincidan con su versión de JDK (por ejemplo, 8 para JDK 8). Haga clic en Apply y luego en OK.

code: 400, <CERTAIN_FIELD > is mandatory for this action.

Falta un parámetro obligatorio en la llamada a la API. Solución:

Ejemplo con la API SendSms de Short Message Service:

  • Vaya a la página Depuración de API en OpenAPI Portal y seleccione el producto de nube y la API.

  • Compare cuidadosamente el objeto de solicitud construido, como SendSmsRequest, para asegurarse de que todos los campos obligatorios (como el número de teléfono y la firma) estén completos.

  • Consulte la documentación de la API para confirmar los parámetros obligatorios.

  • Asegúrese de que los valores de los parámetros obligatorios sean válidos (por ejemplo, compruebe que el formato del número de teléfono sea correcto).

  • El SDK valida los parámetros antes de llamar a la API. Si falta un parámetro obligatorio, recibirá un error MissingRequiredParameter. Por ejemplo, si falta el número de teléfono, se devuelve "MissingPhoneNumbers: code: 400".

SendSmsRequest sendSmsRequest = new SendSmsRequest()
        // Replace with the phone number that will receive the text message.
        .setPhoneNumbers("<YOUR_VALUE>")
        // Replace with your SMS signature.
        .setSignName("<YOUR_VALUE>")
        // Replace with your SMS template code.
        .setTemplateCode("<YOUR_VALUE>");

java.lang.NoSuchMethodError, java.lang.NoSuchFieldError

Causa:

Esta excepción ocurre cuando el entorno de ejecución de Java llama a un método o accede a un campo que no existe. Causas comunes:

  • Versión de dependencia obsoleta en su pom.xml de Maven o build.gradle de Gradle.

  • Conflicto de dependencias: existen varias versiones de la misma dependencia, lo que provoca que se cargue una versión inferior durante la ejecución.

  • Caché desactualizada: después de actualizar una dependencia, no se volvió a compilar el proyecto ni se borró la caché.

  • Las versiones de las dependencias en tiempo de compilación y en tiempo de ejecución son distintas.

  • Conflicto de classpath: se seleccionó un classpath incorrecto durante la importación.

Solución:

  1. Revise el ejemplo proporcionado en OpenAPI Portal de Alibaba Cloud para comprobar si hay algún error en el classpath.

  2. Si el classpath es correcto, obtenga la clase específica que causó el error a partir de la información de la pila de la excepción. Luego busque la dependencia y la versión correspondientes.

  3. Ejecute el siguiente comando para ver las dependencias directas y transitivas del proyecto, junto con los conflictos y duplicados específicos.

    • Maven: Maven usa las reglas "ruta más corta primero" y "orden de declaración primero" para resolver las versiones de las dependencias. Resuelva los conflictos ajustando el orden de las dependencias.

      mvn dependency:tree -Dverbose
    • Gradle: Gradle usa "versión más alta primero" de manera predeterminada, por lo que solo las versiones obsoletas generan problemas. Salte al paso 4 para obtener la versión más reciente.

  4. En la salida del árbol de dependencias, busque conflictos. Si los encuentra, mueva la versión más alta de la dependencia en conflicto a la parte superior de la sección <dependencies></dependencies> en pom.xml. Ejecute mvn clean install -U para volver a compilar. Si el error persiste, continúe con los pasos siguientes.

  5. Busque la versión más reciente de la dependencia en V2.0 Java SDK common dependency packages. Actualice la versión en su pom.xml o build.gradle.

  6. Limpie y vuelva a compilar el proyecto:

    • Maven

      mvn clean install -U
    • Gradle:

      gradle clean build --refresh-dependencies
  7. Compruebe que el problema se haya resuelto.

Ejemplo:

El mensaje de la excepción es java.lang.NoSuchMethodError: com.aliyun.credentials.Client.getCredential().

  1. Tras la revisión, el classpath es correcto.

  2. Según el mensaje de la excepción, esta ocurrió en la clase com.aliyun.credentials.Client, que pertenece a la dependencia credentials-java. La versión referenciada actualmente es 0.2.4.

  3. Después de ejecutar mvn dependency:tree -Dverbose, se detecta que la dependencia principal credentials-java, tea-openapi, presenta un conflicto de versiones. La versión referenciada actualmente es 0.3.2, y la versión en conflicto es 0.3.8. Se recomienda mover la dependencia principal correspondiente a la versión tea-openapi 0.3.8 a la parte superior de la sección <dependencies></dependencies>.

  4. Ejecute el comando mvn clean install -U para limpiar y volver a compilar el proyecto. Después, compruebe que el problema se haya resuelto.

  5. Si el problema persiste, obtenga la versión más reciente de credentials-java desde Maven Central: com.aliyun:credentials-java y agregue manualmente la dependencia al archivo pom.xml.

"TeaUnretryableException: timeout", "java.net.SocketTimeoutException: connect timed out", "java.net.SocketTimeoutException: Read timed out", "SDK.ServerUnreachable", "Connection aborted" o "RemoteDisconnected".

Los problemas de tiempo de espera tienen varias causas comunes:

Problemas de conectividad de red

La red entre su cliente y el servidor está desconectada o es inestable.

Solución:

Pruebe la conectividad hacia el endpoint del producto de nube mediante ping o curl. Por ejemplo, si la API SendSms agota el tiempo de espera: ping dysmsapi.aliyuncs.com o curl -v https://dysmsapi.aliyuncs.com.

  • Si el comando agota el tiempo de espera, revise si existen políticas de bloqueo en su firewall o router.

  • Si el comando se ejecuta correctamente, configure un tiempo de espera razonable para evitar fallas. Consulte Timeout mechanism. Ejemplo:

// Runtime parameter timeout setting. This is effective only for requests that use this runtime parameter instance.
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.connectTimeout = 5000;

Tiempo de procesamiento prolongado de la API

El tiempo de procesamiento de la API supera el tiempo de espera de lectura configurado.

Solución: Aumente el tiempo de espera de lectura. Consulte Timeout mechanism. Ejemplo:

// Runtime parameter timeout setting. This is effective only for requests that use this runtime parameter instance.
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.readTimeout = 10000;

Your request is denied as lack of ssl protect. RequestId .

La API requiere HTTPS, pero su solicitud usó HTTP.

Solución:

  • Para el SDK V1.0, establezca el protocolo HTTPS en el objeto Request:

    request.setSysProtocol(com.aliyuncs.http.ProtocolType.HTTPS);
  • Use el SDK V2.0, que utiliza HTTPS de manera predeterminada.

code: 404, Specified api is not found, please check your url and method.

Ingresó un Endpoint o RegionId incorrecto. Solución:

Compruebe que su región admita el servicio de destino. Busque el Endpoint del producto en su página principal dentro de OpenAPI Developer Portal.

Por ejemplo, para Short Message Service, inicie sesión en OpenAPI Portal de Alibaba Cloud, vaya a la página del producto y consulte Service Region List para confirmar el ID de región y la dirección del servicio correctos. El Endpoint del servicio de SMS sigue el patrón [product_code].[region_id].aliyuncs.com. Para las regiones nacionales (como cn-beijing, cn-hangzhou, cn-shanghai, etc.), la dirección del servicio es uniformemente dysmsapi.aliyuncs.com.

Unexpected response code for CONNECT: 400.

Un nodo intermedio interceptó la solicitud y esta no llegó a la puerta de enlace de Alibaba Cloud.

Solución:

  • Es posible que la configuración del proxy sea incorrecta. Pruebe con: curl https://<nombre de dominio del servicio de Alibaba Cloud>/ -v -x <IP del proxy>:<puerto del proxy> (por ejemplo, curl https://ecs-cn-hangzhou.aliyuncs.com/ -v -x 127.0.0.1:3128).

  • Un firewall interno podría estar bloqueando la solicitud. Intente cambiar de red (por ejemplo, conéctese a un punto de acceso celular).

Can not set java.lang.String field com.aliyun.imm20200930.models.GenerateWebofficeTokenShrinkRequest.userShrink to java.util .

Una versión anterior del paquete Tea no puede convertir una estructura compleja en un String, lo que genera este error.

Solución:

Actualice el paquete Tea a la versión 1.2.7 o posterior:

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>tea</artifactId>
  <version>1.2.7</version>
</dependency>

Failed to automatically download dependencies with Maven in IDEA.

  • Actualizar el repositorio de Maven

    Abra el menú "File" y seleccione "Settings" (o "Preferences"). En el panel de navegación izquierdo, expanda "Build, Execution, Deployment" y luego seleccione "Build Tools" > "Maven". Busque la pestaña "Repositories", seleccione el repositorio local, haga clic en el botón "Update" y espere a que finalice la actualización.

  • Revisar la caché de IDEA

    Abra el menú "File" y seleccione "Invalidate Caches...". En el cuadro de diálogo que aparece, seleccione "Invalidate and Restart" y espere a que IDEA borre la caché y se reinicie.

  • Comprobar la conexión de red

    Si Maven no logra conectarse al repositorio central o a otros repositorios remotos, es posible que no pueda descargar las dependencias. Asegúrese de que su conexión de red funcione correctamente y de que ningún firewall o servidor proxy bloquee el acceso de Maven.

  • Revisar la configuración de Maven

    Compruebe que el archivo de configuración de Maven (generalmente settings.xml) esté configurado correctamente. Asegúrese de que "localRepository" apunte a la ruta correcta del repositorio local y de que "mirrors", "proxies" y "profiles" estén bien configurados.

Cómo evitar mensajes WARNING causados por reflexión.

024-11-26 17:05:04.696  INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.s.r.i.ResourceMonitorServiceImpl   : instance=rmq-cn-jte3mmyuu0i
024-11-26 17:05:04.696  INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.r.i.ResourceMonitorComponentImpl   : getInstanceInfo
024-11-26 17:05:04.699  INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.r.i.ResourceMonitorComponentImpl   : tea client
024-11-26 17:05:04.699  INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.r.i.ResourceMonitorComponentImpl   : tea runtime
024-11-26 17:05:04.764  WARN 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] com.aliyun.tea.TeaModel                  : There are some cast events happening. expect: java.lang.Double

Cuando se usa el SDK de Alibaba Cloud con una versión de JDK superior, pueden aparecer advertencias relacionadas con la reflexión en la salida.

Solución:

Establezca la variable de entorno ALIBABA_CLOUD_SDK_LOG_LEVEL en ERROR para suprimir las advertencias:

  1. Establezca la variable de entorno:

    Windows

    set ALIBABA_CLOUD_SDK_LOG_LEVEL=ERROR

    Linux/macOS

    export ALIBABA_CLOUD_SDK_LOG_LEVEL=ERROR
  2. Confirme la configuración de la variable de entorno:

    Windows

    echo %ALIBABA_CLOUD_SDK_LOG_LEVEL%

    Linux/macOS

    echo $ALIBABA_CLOUD_SDK_LOG_LEVEL
  3. Inicie su aplicación. Los mensajes de advertencia del SDK de Alibaba Cloud ya no se mostrarán; solo aparecerán los mensajes de nivel ERROR o superior.

Nota
  • Para cambiar el nivel de registro durante la depuración o el desarrollo, cambie el valor de la variable de entorno a DEBUG o INFO.

Specified signature does not match our calculation.

at java.lang.Thread.run(Thread.java:748)
ERROR [pool-3-thread-1] 2024-11-12 17:20:00,059 (AliDmsAuditSyncServiceImpl.java:219) - [MS访问事件同步] 异常
com.aliyun.tea.TeaException: code: 400, Specified signature does not match our calculation. server StringToSign is [ACS3-HMAC-SHA256
3d5cxxx                                                              ], server CanonicalRequest is [POST
/

La firma de la solicitud no coincide con el cálculo del lado del servidor. Posibles causas:

  • El AccessKey (AK) se copió de forma incorrecta.

  • El algoritmo de firma es incorrecto.

  • Los parámetros de la solicitud o su orden no cumplen con los requisitos de la API.

Solución:

  1. Compruebe que el ID y el secreto del AccessKey en su código coincidan exactamente con los de la consola (sin espacios adicionales ni caracteres especiales). Use un AccessKey existente o cree uno nuevo desde Create an AccessKey pair. Nota: El secreto del AccessKey se muestra solo una vez, en el momento de su creación.

  2. Actualice commons-codec para evitar errores en el cálculo de la firma.

    Actualice la dependencia:

    Maven

    Modifique el archivo pom.xml.

    <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
       <version>1.15</version> <!-- Updated version -->
    </dependency>

    Después de actualizar el número de versión, ejecute el siguiente comando:

    mvn clean install

    Gradle

    En el archivo build.gradle, agregue o actualice la dependencia:

    dependencies {
         implementation 'commons-codec:commons-codec:1.15' // Updated version
    }

    Ejecute el siguiente comando para compilar el proyecto:

    gradle build
  3. Si utiliza firmas propias, compruebe que la lógica de su código coincida con V3 request body & signature mechanism.

SDK.EndpointResolvingError: "No such region 'cn-XX'. Please check your region ID".

La versión del SDK es demasiado antigua y no admite la región o la API de destino. Solución:

Actualice la dependencia principal del SDK:

Maven

Si usa Maven para gestionar el proyecto, actualice la versión de la dependencia en el archivo pom.xml:

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

Gradle

Si usa Gradle para gestionar el proyecto, actualice la versión de la dependencia en el archivo build.gradle:

dependencies {
    implementation 'com.aliyun:aliyun-java-sdk-core:4.7.2'
    implementation 'com.aliyun:aliyun-java-sdk-sts:3.1.2'
}

Failed to instantiate [com.aliyuncs.IAcsClient]: Factory method 'iAcsClient' threw exception with message: org/apache/http/conn/ssl/DefaultHostnameVerifier .

Se está utilizando una versión de Apache HttpClient incompatible con el SDK de Alibaba Cloud. Solución:

  • Compruebe, mediante la gestión de dependencias de su herramienta de compilación, que ninguna otra biblioteca introduzca una versión de HttpClient incompatible.

  • Actualice Apache HttpClient a la versión 4.5.14 o posterior:

    <dependency>
        <groupId>org.apache.httpcomponents.client</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.14</version> <!-- Please check for the latest version -->
    </dependency>

Error al llamar a una OpenAPI: code: 401, You have not activated the XXX service, o un mensaje similar.

Su cuenta de Alibaba Cloud no ha activado el servicio correspondiente. XXX es el nombre del servicio (por ejemplo, OCR service). Solución:

  1. Inicie sesión en la consola de administración del servicio correspondiente.

  2. Busque y habilite la función requerida.

  3. Espere a que el servicio se habilite y luego vuelva a llamar a la API.

Failed to get RAM session credentials from ECS metadata service. HttpCode=XX

La credencial del rol de RAM de instancia (ecs_ram_role) solo se puede usar en una instancia de ECS o ECI que tenga un rol de RAM adjunto. Consulte ECS instance RAM role y Use an ECI instance RAM role by calling an API.

  • Para comprobar que esta credencial funciona, ejecute el siguiente comando en la instancia de ECS:

    • Instancia Linux

      # Get the metadata access credential. You must set an expiration time. The request cannot contain the X-Forwarded-For header. 100.100.100.200 is the IPv4 address of the instance metadata service.
      TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:<metadata_credential_expiration_time>"`
      # Access instance metadata
      curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/meta-data/ram/security-credentials/[role-name]
    • Instancia Windows (PowerShell)

      # Get the metadata access credential. You must set an expiration time. The request cannot contain the X-Forwarded-For header. 100.100.100.200 is the IPv4 address of the instance metadata service.
      $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "<metadata_credential_expiration_time>"} -Method PUT -Uri http://100.100.100.200/latest/api/token
      # Access instance metadata
      Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/meta-data/ram/security-credentials/[role-name]

    Si se devuelve la siguiente respuesta, la credencial del rol de RAM de la instancia está disponible:

    {
      "AccessKeyId" : "AccessKeyIdValue",
      "AccessKeySecret" : "AccessKeySecretValue",
      "Expiration" : "2025-07-10T08:37:58Z",
      "SecurityToken" : "SecurityTokenValue",
      "LastUpdated" : "2025-07-10T02:33:26Z",
      "Code" : "Success"
    }
  • Para cambiar a otro tipo de credencial, consulte Manage access credentials.

There is a risk of leakage of this AccessKey

Causa: Su AccessKey podría estar en riesgo de filtración. Alibaba Cloud aplicó restricciones de protección.

Solución: Solutions for AccessKey leakage.

Request was denied due to api flow control

Causa: Las llamadas a la API son demasiado frecuentes, lo que activa el límite de velocidad (por ejemplo, "ThrottlingException").

Solución:

  • Implemente un mecanismo de reintento y aumente el intervalo entre solicitudes para reducir la carga.

  • Optimice la lógica del código: utilice procesamiento por lotes o llamadas asíncronas para reducir el volumen de solicitudes.

Specified access key denied due to access policy

Causa: Una política de restricción de acceso de red del AccessKey limita qué direcciones IP de origen pueden usar un AccessKey permanente para realizar solicitudes a la API.

Solución:

  • Modifique el rango de direcciones IP en la política de restricción de acceso de red del AccessKey.

  • No habilite la política de restricción de acceso de red del AccessKey.

AccessKey network access restriction policy.

com.aliyuncs.exceptions.ClientException: SDK.InvalidRegionId : Can not find endpoint to access

Causa: Parámetros incorrectos (como un regionId no válido) impiden que el SDK encuentre el endpoint del servicio.

Solución:

  • Compruebe que todos los parámetros de configuración (Endpoint, RegionId, etc.) sean correctos según la documentación y los ejemplos de código de Alibaba Cloud.

  • Depure la API en OpenAPI Developer Portal. Después de depurarla correctamente, descargue el proyecto de ejemplo completo para usarlo de forma local.

Lista de verificación básica de excepciones de Java

Mensaje de error

Causa

Solución

NullPointerException

Se intentó llamar a un método o acceder a una propiedad en un objeto nulo.

Antes de usar un objeto, compruebe que no sea nulo para evitar un NullPointerException. Para esta comprobación, utilice una instrucción condicional o una aserción.

ArrayIndexOutOfBoundsException

Se intentó acceder a un índice que no existe en el arreglo.

Asegúrese de que el índice del arreglo esté dentro del rango válido, es decir, mayor o igual a 0 y menor que la longitud del arreglo. Controle las condiciones del bucle o compruebe manualmente el rango del índice para evitar una excepción por índice fuera de límites.

IllegalArgumentException

Un método recibió un argumento no válido.

Compruebe los parámetros pasados al método para confirmar que cumplen con sus requisitos. Utilice una instrucción condicional o una aserción para validar los parámetros.

ArithmeticException

Ocurrió una excepción durante una operación aritmética, como una división entre cero.

Antes de ejecutar una operación aritmética, aplique las comprobaciones y el procesamiento necesarios para evitar excepciones. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar los errores aritméticos.

ClassCastException

Se intentó convertir un objeto a un tipo incompatible.

Antes de convertir un tipo, use el operador instanceof para comprobarlo y asegurar que el tipo del objeto sea compatible. Si los tipos son incompatibles, considere usar una conversión adecuada o rediseñar la relación de herencia del objeto.

FileNotFoundException

Se intentó abrir un archivo que no existe.

Asegúrese de que la ruta y el nombre del archivo sean correctos, y de que el archivo exista en la ubicación especificada. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error.

IOException

Ocurrió una excepción durante una operación de entrada o salida, como la lectura o escritura de un archivo, o durante la comunicación de red.

Compruebe que la operación de entrada o salida sea correcta, asegúrese de que el archivo o recurso esté disponible y gestione las posibles excepciones. Utilice un mecanismo de manejo de excepciones para procesar estos errores.

InterruptedException

Un hilo se interrumpió de forma inesperada durante una operación multihilo.

Gestione adecuadamente las interrupciones de hilos al procesar operaciones multihilo. Utilice un mecanismo de manejo de excepciones o una instrucción condicional para controlar estas interrupciones.

NoSuchMethodException

Se intentó llamar a un método que no existe.

Compruebe que el nombre del método y los parámetros sean correctos, y asegúrese de que el método llamado exista. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error.

NumberFormatException

Se intentó convertir en número una cadena que no admite dicha conversión.

Al convertir una cadena en un número, aplique primero una validación adecuada para confirmar que la conversión sea posible. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error de formato.

IndexOutOfBoundsException

Se intentó acceder a un índice que no existe en una lista o cadena.

Asegúrese de que el índice esté dentro del rango válido, es decir, mayor o igual a 0 y menor que la longitud de la lista o cadena. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error.

UnsupportedOperationException

Se intentó llamar a un método u operación no compatible.

Consulte la documentación o la documentación de la API para conocer los métodos y operaciones compatibles. Asegúrese de que el método u operación sea viable en el entorno actual.

IllegalMonitorStateException

Se llamó al método wait(), notify() o notifyAll() en un momento inadecuado.

Asegúrese de usar correctamente los métodos wait(), notify() o notifyAll() dentro de un bloque de código sincronizado. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error de estado de monitor.

SecurityException

Se intentó ejecutar una operación que infringe las reglas de seguridad, como un acceso no autorizado o una violación de permisos de archivo.

Revise las reglas de seguridad en el código para asegurar que no se infrinjan. Aplique los ajustes y modificaciones correspondientes según dichas reglas.

ClassNotFoundException

Se intentó cargar una clase que no existe.

En el SDK, esto suele deberse a un conflicto de dependencias donde coexisten varias versiones, lo que provoca que el cargador de clases seleccione una versión incorrecta. Compruebe que el nombre de la clase y el classpath sean correctos, y asegúrese de que la clase requerida exista. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error.

NoSuchFieldException

Se intentó acceder a un campo que no existe.

En el SDK, esto generalmente se debe a un conflicto de dependencias donde una versión anterior tiene prioridad en el índice, lo que hace que el método del SDK V2.0 no exista. Asegúrese de que el nombre del campo sea correcto y de que el campo al que intenta acceder exista. Utilice una instrucción condicional o un mecanismo de manejo de excepciones para gestionar este error.

Soporte técnico

Si encuentra otros problemas, contáctenos:

  • Envíe un ticket: Alibaba Cloud Ticket Submission Page.

  • Si tiene necesidades relacionadas o comentarios, únase al grupo de DingTalk para comunicarse con el soporte técnico de Alibaba Cloud. El número del grupo es 60965016010.