本文介紹了使用Java SDK時出現PB庫衝突的現象、原因和解決方案。
現象
使用Java SDK時出現如下異常:
Caused by: java.lang.UnsupportedOperationException: This is supposed to be overridden by subclassed
原因
Java SDK依賴2.4.1版本的Protobuf庫和4.0.2版本的httpasyncclient,容易與您的應用程式中內建的相同庫衝突。
解決方案
在Maven專案中的pom.xml中添加如下依賴即可。
说明 classifier為jar-with-dependencies,它將依賴的HttpClient和Protobuf庫都通過rename package的方式打包進去,去除了對HttpClient和Protobuf的依賴。
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>tablestore</artifactId>
<version>替換為您當前使用的版本</version>
<classifier>jar-with-dependencies</classifier>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
</exclusion>
</exclusions>
</dependency>