NoClassDefFoundError जावा SDK में AmazonSNSClient

वोट
0

मैं त्रुटि कक्षा परिभाषा नहीं मिला जब मैं एडब्ल्यूएस लैम्ब्डा में अपनी स्थानीय सिस्टम नहीं चल रहा है इन्स्तांत AWSSNSClient.This कोड करने की कोशिश मिला है। यहाँ मेरी जावा कोड है

   18->   AmazonSNSClient snsClient = new AmazonSNSClient(credentials);
        snsClient.setRegion(Region.getRegion(Regions.));
        ObjectMapper Obj = new ObjectMapper();
        PublishRequest publishRequest = new PublishRequest();
        publishRequest.setTargetArn();
        publishRequest.setMessage();
        PublishResult publishResponse = snsClient.publish(publishRequest);

मेरे pom.xml

<?xml version=1.0 encoding=UTF-8?>
<project xmlns=http://maven.apache.org/POM/4.0.0
    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
    xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.cmds</groupId>
    <artifactId></artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name></name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>1.11.379</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-kubernetes-config</artifactId>
            <version>1.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-flow</artifactId>
            <version>1.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>amazon-sqs-java-messaging-lib</artifactId>
            <version>1.0.8</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-sns</artifactId>
            <version>1.11.721</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

        </plugins>

    </build>

</project>

मैं निम्न त्रुटि प्राप्त जब जावा कोड निष्पादित करता है

java.lang.NoClassDefFoundError: com / amazonaws / सेवाओं / एसएनएस / AmazonSNSClient com.cmds.booking.infrastructure.SNSService.publishMessage पर (SNSService.java:18)

किसी भी निर्भरता मुद्दा? मैं गलत कहाँ चले गए?

13/02/2020 को 21:57
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मैं अपने जावा कोड मेरी क्षमता के अनुसार स्निपेट की जांच की है और वहाँ दो मुद्दों है कि मैं नोट कर लिया हैं:

(I) नीचे लाइन अधूरा है:

snsClient.setRegion(Region.getRegion(Regions.));

और करने के लिए बदल दिया जाना चाहिए:

snsClient.setRegion(Region.getRegion(Regions.US_EAST_1));

(Ii) निम्नलिखित घोषणा अनुचित हैं:

new AmazonSNSClient(credentials) 

तथा

snsClient.setRegion(Region.getRegion(Regions.fromName(region)));

इसके बजाय, एडब्ल्यूएस सेवा ग्राहकों को इस प्रकार बनाया जाना चाहिए:

यदि आप एक क्रेडेंशियल फ़ाइल का उपयोग कर रहे हैं तो आप निम्न का उपयोग कर सकते हैं:

BasicAWSCredentials basicAwsCredentials = new BasicAWSCredentials(AccessKey,SecretAccessKey);
AmazonSNS snsClient = AmazonSNSClient
                    .builder()
                    .withRegion(your_region)
                    .withCredentials(new AWSStaticCredentialsProvider(basicAwsCredentials))
                    .build();

आप useInstanceProfileCredentialProvider करने जा रहे हैं तो आप निम्न का उपयोग कर सकते हैं:

AmazonSNS sns = AmazonSNSClientBuilder
                .standard()
                .withCredentials(new InstanceProfileCredentialsProvider(true))
                .build();

अधिक जानकारी पर पाया जा सकता एडब्ल्यूएस जावा डेवलपर गाइड

उम्मीद है की यह मदद करेगा!

14/02/2020 को 13:24
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more