так что это чокнутый, и я бы хотел немного помочь.
Вот ошибка, которую я получаю
getS3Client(): Exception: java.lang.NoSuchMethodError: org.apache.http.impl.conn.CPool.setValidateAfterInactivity(I)V
когда я пытаюсь запустить этот блок кода
GrailsApplication grailsApplication
// Amazon AWS S3 properties
private awsProps = [ "loaded" : false
, "S3Bucket" : ""
, "AccessKeyId" : ""
, "AccessKeyPsw": ""
]
def getS3Client ( ) {
try {
if ( ! awsProps.loaded ) {
loadAwsProperties()
}
def awsCreds = new BasicAWSCredentials( awsProps.AccessKeyId, awsProps.AccessKeyPsw )
AmazonS3 s3Client
s3Client = AmazonS3ClientBuilder.standard()
.withCredentials( new AWSStaticCredentialsProvider( awsCreds ) )
.withRegion( Regions.US_EAST_1 )
.build()
return s3Client
} catch ( Throwable t ) {
log.error ( "getS3Client(): Exception: ${t}" )
return null
}
}
Вот мои зависимости вверху файла
import com.amazonaws.HttpMethod
import com.amazonaws.auth.AWSStaticCredentialsProvider
import com.amazonaws.auth.BasicAWSCredentials
import com.amazonaws.regions.Regions
import com.amazonaws.services.s3.AmazonS3
import com.amazonaws.services.s3.AmazonS3ClientBuilder
import com.amazonaws.services.s3.model.*
import com.burris.portal.utils.Utils
import grails.core.GrailsApplication
import javax.imageio.ImageIO
import javax.imageio.ImageReader
import javax.imageio.stream.ImageInputStream
import java.awt.Graphics2D
import java.awt.RenderingHints
import java.awt.image.BufferedImage
import grails.gorm.transactions.Transactional
import groovy.util.logging.Log4j
Вот мои build.gradle
зависимости от файла
* FOR AMAZON S3 force these org.apache.httpcomponents to the top of the classpath
*/
configurations.all {
resolutionStrategy.force 'org.apache.httpcomponents:httpcore:4.4.9', 'org.apache.httpcomponents:httpclient:4.5.5'
}
/* Continue with other necessary dependencies */
dependencies {
/* FOR AMAZON S3 4.5.5 JIRA_SCP-1357-MI-Inspection */
compile 'org.apache.httpcomponents:httpcore:4.4.9'
compile "org.apache.httpcomponents:httpclient:4.5.5"
compile "com.amazonaws:aws-java-sdk-s3:1.11.328"
/* FOR GROOVY HTTP */
compile "org.codehaus.groovy.modules.http-builder:http-builder:0.6"
...
}
Теперь вот кикер, он работает практически на всех других машинах разработчика, кроме моей, и я не смог понять, почему.
Это проект Groovy on Grails, и используемый мной движок сборки - это gradle с java.
Вот мои версии, хотя я протестировал несколько других, которые работают на машинах моего коллеги, но по какой-то причине не моей
java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
gradle --version
------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------
Build time: 2018-02-28 13:36:36 UTC
Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_181 (Oracle Corporation 25.181-b13)
OS: Mac OS X 10.13.6 x86_64
grails --version
| Grails Version: 3.2.11
| Groovy Version: 2.4.11
| JVM Version: 1.8.0_181
gradle dependencies --configuration=testRuntime | grep httpcore
+--- org.apache.httpcomponents:httpcore:4.4.9
| +--- org.apache.httpcomponents:httpcore:4.4.9
| | | +--- org.apache.httpcomponents:httpcore:4.3 -> 4.4.9
| | | \--- org.apache.httpcomponents:httpcore-nio:4.3
| | | \--- org.apache.httpcomponents:httpcore:4.3 -> 4.4.9
Вот что я пробовал
- Обновление и понижение версии Java, gradle, grails и groovy version безуспешно. Мои коллеги работают над Gradle 3.1 и 4.8, поэтому я не думаю, что проблема здесь.
- Безуспешно переключился с openJDK на OracleJDK.
- Уничтожил мои зависимости gradle от глобального домашнего каталога и локального каталога репо через
rm -rf ~/.gradle
и rm -rf ./gradle
и rm build/.dependencies
, чтобы принудительно загрузить все репо безуспешно
- Пробовал
/gradlew clean build
безуспешно
- Клонировал репо в другое репо, и тот же результат произошел
- Перезагрузил компьютер, и это тоже не сработало
- Посмотрел GitHub и StackOverflow, и это заставило меня подумать, что обновление моей версии httpcore поможет, за исключением того, что все мои зависимости gradle для httpcore точно такие же, как на другом компьютере, на котором работает метод (см. Выше)
Вот моя версия MAC OSX - macOS High Sierra Version 10.13.6
Так что любая помощь будет признательна, так как я нахожусь в конце моего ума здесь. Приложение работает нормально почти во всех других ситуациях, но просто ломается при этом методе.