首先呢,使用jdbc连接Phoenix,运气好,添加依赖,常规jdbc,之前,打包,运行,正常,这当然是理想的情况!
所以我们来说不理想的情况,启动报 guava的错误啦,找不到驱动啦,idea启动正常,打包启动报错了,或者是第三方jar包太大,启动不了了,启动正常,报什么
Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled
搞死人哦
流畅的解决方法
首先找自己hbase 和Phoenix对应的依赖
org.apache.phoenix
phoenix-4.14.0-cdh5.14.2
client
极大可能,下载不到你版本的依赖jar,解决方法,百度找,然后下载jar包,之后使用maven install将jar包install到本地仓库
mvn install:install-file -DlocalRepositoryPath=D:\Home\Java\tools\repository -Dfile=phoenix-4.14.0-cdh5.14.2-client.jar -DgroupId=org.apache.phoenix -DartifactId=phoenix-4.14.0-cdh5.14.2 -Dversion=client -Dpackaging=jar
具体命令参数不做解释,我相信你知道怎么搞,不会就百度,然后执行成功后,你的仓库中就有这个依赖了,上面的依赖也正常了
然后问题又来了,idea启动是正常的,但是打包启动就报错 什么unsupport zip64,网上说是文件太大了,一堆
解决方法,修改打包方式(Main-Class需要修改成你自己的):
org.apache.maven.plugins
maven-shade-plugin
org.springframework.boot
spring-boot-maven-plugin
2.1.6.RELEASE
true
true
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
package
shade
META-INF/spring.handlers
META-INF/spring.factories
META-INF/spring.schemas
com.xzkj.kafka.KafkaApplication
然后就没有然后了,不论多大的第三方jar包,都可以打包并且启动,至于为什么,你可以把打包后的jar包解压下,你就知道为什么了!!!
小tips(给我自己用):
任何maven仓库下载不到的依赖,从网上下载到,然后使用mvn install 到本地仓库,然后就不用使用systemPath来引用了,免得打包的时候,不会被打包进去.
------------------------------------------------------------------------------------------------------------------------------------ 一只弱弱的小菜鸡
------------------------------------------------------------------------------------------------------------------------------------2019年12月27日11:54:50