'trouble with google text-to-speech and mysql-connector-java 8.0.19

I'm a newbee using google text-to-speech. the API work fine with Java 1.8 but when i had Mysql connectore driver in my pom.xml file i got a warning and an error Just on executing the QuickStart demo. here is my eclipse console.

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/C:/Users/LOGISPORT/.m2/repository/com/google/protobuf/protobuf-java/3.6.1/protobuf-java-3.6.1.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "grpc-default-executor-0" java.lang.NoSuchMethodError: 'boolean com.google.protobuf.GeneratedMessageV3.isStringEmpty(java.lang.Object)'
    at com.google.cloud.texttospeech.v1.VoiceSelectionParams.getSerializedSize(VoiceSelectionParams.java:328)
    at com.google.protobuf.CodedOutputStream.computeMessageSizeNoTag(CodedOutputStream.java:916)
    at com.google.protobuf.CodedOutputStream.computeMessageSize(CodedOutputStream.java:668)
    at com.google.cloud.texttospeech.v1.SynthesizeSpeechRequest.getSerializedSize(SynthesizeSpeechRequest.java:352)
    at io.grpc.protobuf.lite.ProtoInputStream.available(ProtoInputStream.java:108)
    at io.grpc.internal.MessageFramer.getKnownLength(MessageFramer.java:205)
    at io.grpc.internal.MessageFramer.writePayload(MessageFramer.java:137)
    at io.grpc.internal.AbstractStream.writeMessage(AbstractStream.java:65)
    at io.grpc.internal.ForwardingClientStream.writeMessage(ForwardingClientStream.java:37)
    at io.grpc.internal.DelayedStream$6.run(DelayedStream.java:283)
    at io.grpc.internal.DelayedStream.drainPendingCalls(DelayedStream.java:182)
    at io.grpc.internal.DelayedStream.access$100(DelayedStream.java:44)
    at io.grpc.internal.DelayedStream$4.run(DelayedStream.java:148)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)

Is there an incompatility beetween MySql connector and Google text-to-speech ?

Here is a brief view of my code:

public static void main(String... args ) throws Exception  {
    String jsonPath = "accueil-mamoudzou.json";
    ConnectBase();  
    
    String num = String.valueOf(Integer.valueOf("00013"));
    
    CredentialsProvider credentialsProvider = FixedCredentialsProvider.create(ServiceAccountCredentials.fromStream(new FileInputStream(jsonPath)));     
    
    TextToSpeechSettings settings = TextToSpeechSettings.newBuilder().setCredentialsProvider( credentialsProvider).build();
    System.out.println("Settings créer ... Lancement de la traduction.");
    try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create(settings)){
        
        SynthesisInput input = SynthesisInput.newBuilder().setText("Le numéro "+num+"  est demandé à la porte 45. Merci").build();
        
        VoiceSelectionParams voice =
            VoiceSelectionParams.newBuilder()
                .setName("fr-FR-Wavenet-E")
                .setLanguageCode("fr-FR")
                .setSsmlGender(SsmlVoiceGender.FEMALE)
                .build();
        AudioConfig audioConfig =
            AudioConfig.newBuilder().setAudioEncoding(AudioEncoding.LINEAR16).build();
        
        SynthesizeSpeechResponse response =
            textToSpeechClient.synthesizeSpeech(input, voice, audioConfig);
        
        ByteString audioContents = response.getAudioContent();

          // Write the response to the output file.
          try (OutputStream out = new FileOutputStream("output.wav")) {
            out.write(audioContents.toByteArray());
            
            System.out.println("Audio content written to file output.wav");
            out.close();
          }
          playSound();
    }
}

and my pom.xml

<dependencies>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency> 
    <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-texttospeech</artifactId>
        <version>2.1.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.google.auth/google-auth-library-appengine -->
    <dependency>
        <groupId>com.google.auth</groupId>
        <artifactId>google-auth-library-appengine</artifactId>
        <version>1.6.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.google.cloud/google-cloud-storage -->
    <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-storage</artifactId>
        <version>2.4.5</version>
    </dependency>

</dependencies>


Solution 1:[1]

Try adding this to your pom.xml

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>libraries-bom</artifactId>
    <version>25.0.0</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

It's said to address errors such as NoSuchMethodException and references protobuf directly (Among other things)

Source: https://cloud.google.com/java/docs/bom

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Virus610