• [交流分享] maven编译如何优先从Kunpeng镜像下载jar包
    场景:    Maven仓部分jar包依赖x86 so,无法在鲲鹏上直接使用,需要在鲲鹏上重新编译,部分jar包已编译好放在鲲鹏maven仓内(https://mirrors.huaweicloud.com/repository/maven/kunpeng/),可以直接使用,只需在maven配置文件内配置远程仓优先从鲲鹏maven仓搜索,找不到再从其它仓搜索。  配置文法:     1.  编辑配置文件${maven.home}/conf/settings.xml     2.  profiles标签下增加鲲鹏maven仓 <profile>      <id>securecentral</id>      <activation>            <activeByDefault>true</activeByDefault>      </activation>       <repositories>        <repository>          <id>1central</id>          <url>https://mirrors.huaweicloud.com/repository/maven/kunpeng/</url>          <releases>            <enabled>true</enabled>          </releases>        </repository>         <repository>          <id>2central</id>          <url> https://mirrors.huaweicloud.com/repository/maven/</url>          <releases>            <enabled>true</enabled>          </releases>        </repository>      </repositories>        <pluginRepositories>        <pluginRepository>          <id>3central</id>          <url>https://mirrors.huaweicloud.com/repository/maven/kunpeng/</url>          <releases>            <enabled>true</enabled>          </releases>        </pluginRepository>        <pluginRepository>          <id>4central</id>          <url>https://mirrors.huaweicloud.com/repository/maven/</url>          <releases>            <enabled>true</enabled>          </releases>        </pluginRepository>      </pluginRepositories>    </profile>                
  • snappy-java-1.1.2.jar 编译移植指导 for centos 7.6 ★★★
    1简介Snappy 是一个 C++ 的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。官方链接:http://google.github.io/snappy/类别:压缩Java开发包2环境类别子项版本获取地址(方法) 硬件CPU鲲鹏920--网络Ethernet-10GE--存储SATA 4T--内存256G 2400MHz--OSCentOS7.4Kernel4.11.0-44 软件GCC4.8.5OpenJDK 1.8.0_191Maven3.5.4Snappy-java1.1.1.73依赖安装3.1安装OpenJDK下载并安装到指定目录(如/opt/tools/installed):wget  https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar   -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12   /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport   JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source   /etc/profile3.2安装Maven下载并安装到指定目录(如/opt/tools/installed):wget   https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar   -zxf apache-maven-3.5.4-bin.tar.gzmv   apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport   MAVEN_HOME   JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source   /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository> <!--修改成自己搭建的maven仓库,ARM使能后的jar包替换到该仓库--><mirror></mirror>3.3 其他依赖安装安装git gcc gcc-c++ make cmake libtoolsyum   install git gcc gcc-c++ make cmake libtools -y3.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#!   /bin/sh/usr/bin/gcc-impl   -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件4 组件编译安装    从github下载源码并解压wget https://github.com/xerial/snappy-java/archive/1.1.2.tar.gztar   -zxvf 1.1.2.tar.gz    进源码目录snappy-java-1.1.2执行编译cd snappy-java-1.1.2make若是编译报下载snappy源码失败的错误,则需要手动下载snappy的源码到target目录(此处是指snappy不是snappy-java)本文版本下载snappy-1.1.2.tar.gz,可使用如下链接:http://repository.timesys.com/buildsources/s/snappy/snappy-1.1.2/snappy-1.1.2.tar.gz下载完后重新make编译出的jar包位于:target/snappy-java-1.1.2.jar
  • netty-all-4.0.42-Final.jar编译指导 ★★★
    1 软硬件环境类别子项版本获取地址(方法) 硬件CPU鲲鹏920--网络Ethernet-10GE--存储SATA 4T--内存256G 2400MHz--OSCentOS7.6Kernel4.14  软件GCC4.8.5Maven3.5.4Apr1.5.2Openssl1.0.2h2 编译环境准备2.1 安装OpenJDK下载并安装到指定目录(如/opt/tools/installed):wget  https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar   -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport   JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source   /etc/profile2.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget   https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar   -zxf apache-maven-3.5.4-bin.tar.gzmv   apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport   MAVEN_HOME   JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source   /etc/profile2.3 安装Gcc等依赖项yum安装GCC等相关依赖:yum   install git gcc gcc-c++ make cmake libtool autoconf automake -y2.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#!   /bin/sh/usr/bin/gcc-impl   -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件3 组件编译安装3.1 安装相关依赖包3.1.1 安装netty-tcnative 1.1.33.Fork231.  下载并解压版本wget https://github.com/netty/netty-tcnative/archive/netty-tcnative-parent-1.1.33.Fork23.tar.gztar -zxvf netty-tcnative-parent-1.1.33.Fork23.tar.gz 2.  进入netty-tcnative解压目录cd netty-tcnative-netty-tcnative-parent-1.1.33.Fork233.  修改pom.xml,屏蔽boringssl的编译,编译打包到maven本地仓库(该步会有报错,解决方法见下一步)mvn   install -DskipTests修改pom.xml,注释掉下载apr-1.5.2的部分(有两处)4.  并下载apr-1.5.2,放置于指定位置cd   ./openssl-static/targetwget https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz继续编译打包到maven本地仓库(该步会有报错,解决方法见下一步)mvn   install -DskipTests修改openssl-static/pom.xml,注释掉下载openssl source的部分(有两处)将openssl-static/target/old/1.0.2/目录下的openssl-1.0.2j.tar.gz拷贝到openssl-static/targetcp   ./openssl-static/target/old/1.0.2/openssl-1.0.2j.tar.gz .   openssl-static/target/ 5.  编译打包到maven本地仓库mvn   install -DskipTests 6.  修改tcnative生成jar包的文件名,在文件最后增加-fedoracd /root/.m2/repository/io/netty/netty-tcnative/1.1.33.Fork23cp   netty-tcnative-1.1.33.Fork23-linux-aarch_64.jar netty-tcnative-1.1.33.Fork23-linux-aarch_64-fedora.jar 3.2 下载netty-4.0.42源码下载netty-4.0.42源码,并解压wget https://github.com/netty/netty/archive/netty-4.0.42.Final.tar.gztar -zxvf   netty-4.0.42.Final.tar.gz修改pom.xml,注释以下代码编译打成jar包, netty-all-4.0.42.Final.jar放置于netty-netty-4.0.42.Final/all/target目录mvn   install -DskipTests 4 测试无5 FAQQ: 为何在编译netty-tcnative时屏蔽boringssl?A: 若编译时不屏蔽boringssl,会报tcnative openssl版本(1.0.2h)与boringssl中需要的C语言宏定义库不完全兼容导致的。并且,由于boringssl是google自己开发并自己使用,并不希望第三方软件使用,去掉此部分风险小,因此采用屏蔽此部分的方法。
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第105期netty-all-4.0.29.Final.jar安装配置指南
    1、简介Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服 务器和客户端。类别:应用工具2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包GCC4.8.5Maven 3.5.4https://maven.apache.org/ Apr1.5.2https://archive.apache.org/ dist/apr/apr-1.5.2.tar.gzNetty-tcnative1.3.33.Fork3 https://codeload.github.com/netty/netty-tcnative/tar.gz/ netty-tcnative-1.1.33.Fork3netty-4.0.29.Final.zip4.0.29https://github.com/netty/netty/archive/netty-4.0.29.Final.zip3、依赖安装yum install git gcc gcc-c++ make cmake libtools -y4、组件编译安装下载apr-1.5.2源码,并编译安装下载apr-1.5.2源码。 wget https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz 解压源码包。 tar –zxvf apr-1.5.2.tar.gz 进入解压后目录。 cd apr-1.5.2 4. 编译安装。 ./configure make make install 下载tcnative-1.1.33.Fork3源码,并编译安装wget https://codeload.github.com/netty/netty-tcnative/tar.gz/nettytcnative-1.1.33.Fork3 mv netty-tcnative-1.1.33.Fork3 netty-tcnative-1.1.33.Fork3.tar.gz 解压源码包tar -zxvf netty-tcnative-1.1.33.Fork3.tar.gz 进入解压后目录。 cd netty-tcnative-netty-tcnative-1.1.33.Fork3 修改pom.xml,在编译native库过程中添加-fsigned-char编译打包到maven本地仓库mvn install -DskipTests 下载netty-4.0.29源码,并编译安装wget https://github.com/netty/netty/archive/netty-4.0.29.Final.tar.gz 解压源码包tar –zxvf netty-4.0.29.Final.tar.gz 修改transport-native-epoll/pom.xml,在编译native库过程中添加-fsigned-char。 编译打成jar包,netty-all-4.0.29.Final.jar放置于netty-netty-4.0.29.Final/all/target目录。 mvn package -DskipTests5、系统配置无6、测试无7、参考信息无8、FAQ无
  • 使用华为开源镜像站缺少jar包
    使用华为镜像站创建maven项目以下工具包无法下载: com.alibaba.druid  //阿里巴巴数据库链接池 Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5 Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6 Cannot resolve plugin org.apache.maven.plugins:maven-jar-plugin:2.4 Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1 Cannot resolve plugin org.apache.maven.plugins:maven-surefire-plugin:2.12.4 Cannot resolve plugin org.apache.maven.plugins:maven-install-plugin:2.4 Cannot resolve plugin org.apache.maven.plugins:maven-deploy-plugin:2.7 Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3 maven的setting文件配置如下 <mirror>     <id>huaweicloud</id>     <mirrorOf>*</mirrorOf>     <url>https://repo.huaweicloud.com/repository/maven/</url> </mirror> 偶尔还报错 huaweicloud.xxxx未找到
  • 请问如何发布jar包到maven仓库?
    请问如何发布jar包到华为maven仓库?让其他开发者可以通过maven使用我的jar包。
  • jar包已经上传私库了,但是报Not authorized , ReasonPhrase:Unauthorized
    构建的时候怎么配置mavne的settings.xml已经添加配置Maven私有依赖库
  • [交流分享] Java Jar包压缩、解压使用指南
    #化鲲为鹏,我有话说#如何打/解包使用jdk/bin/jar.exe工具,配置完环境变量后直接使得jar命令即可。jar命令格式jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名...{ctxu},这四个参数必须选选其一。[v f m e 0 M i],这几个是可选参数,文件名也是必须的。参数 | 说明 ---|--- -c | 创建一个jar包 -t | 显示jar中的内容列表 -x | 解压jar包 -u | 添加文件到jar包中 -f | 指定jar包的文件名 -v | 输出详细报告 -m | 指定MANIFEST.MF文件 -0 | 生成jar包时不压缩内容 -M | 不生成清单文件MANIFEST.MF -i | 为指定的jar文件创建索引文件 -C | 可在相应的目录下执行命令关于MANIFEST.MF定义:https://baike.baidu.com/item/MANIFEST.MF演示往jar包添加文件jar uf xxx.jar BOOT-INF/classes/application.yml解压jar包jar -xvf xxx.jar打jar包,不生成清单文件,不压缩jar -cvfM0 xxx.jar BOOT-INF/ META-INF/ org/或者jar -cvfM0 xxx.jar *
  • [交流分享] 小技巧:maven编译找不到jar或者pom怎么办
    在使用maven/ant编译时,经常会遇到找不到jar导致编译报错的问题:类似出现“Could not transfer artifact”“Failed to collect dependencies”“Could not resolve dependencies”等关键字的报错:像这种问题,一般出现的原因有以下几点:1、maven远程仓链接不上;2、maven远程仓没有对应的jar或者pom出现这种问题的解决办法一般是更换maven远程仓或者去其他maven仓找对应的jar或者pom,下载下来,替换到本地maven仓库。例如:解决方法:这个问题是由于从远端仓库下载jetty-util-6.1.26.hwx.jar失败,应该是从https://repository.apache.org/content/repositories/snapshorts下载不到对应的jar包。可以去https://repo.huaweicloud.com/repository/maven找对应的jar包和pom文件,并放到本地仓库对应的路径下。从报错信息可以看出,jar包的本地路径是~/.m2/repository/org/mortbay/jetty/jetty-util/6.1.26.hwx,对应的远端仓库路径则是:https://repo.huaweicloud.com/repository/maven/org/mortbay/jetty/jetty-util/6.1.26.hwx/jetty-util-6.1.26.hwx.jar 。可以看出来,远端仓库的路径和本地仓库路径是一一对应的。后续如果再出现这样的问题,也可以参考这样修改。不过记得要将jar包对应的pom文件也下载下来放到本地仓库。
  • [学习Kafka-第3天] Kafka消费机制实践
    Java代码:package dms.kafka.demo; import java.util.Arrays; import java.util.Properties; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; public class KafkaConsumerDemo {     public static void main(String[] args) {         if (args.length != 3) {             throw new IllegalArgumentException("usage: dms.kafka.demo.KafkaProducerDemo bootstrap-servers topic-name group-name.");         }         Properties props = new Properties();         props.put("bootstrap.servers", args[0]);         props.put("group.id", args[2]);         props.put("enable.auto.commit", "true");         props.put("auto.offset.reset", "earliest");         props.put("auto.commit.interval.ms", "1000");         props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");         props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");         KafkaConsumer consumer = new KafkaConsumer(props);         consumer.subscribe(Arrays.asList(args[1]));         while (true) {             ConsumerRecords records = consumer.poll(200);             for (ConsumerRecord record : records){                 System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());             }         }     } }1.打包。点击打包,生成demo-2.jar2.上传服务器:进入linux服务器,进入Kafka的libs目录下使用sz命令,把demo-2.jar传入到这个目录。3.生产消息使用cd..命令回退到上级目录。执行命令(请替换自己的ip,端口号,topic名):java -cp .:./libs/* dms.kafka.demo.KafkaProducerDemo 192.168.236.49:9092 topic-1393626260执行结果如下(红框里根据个人不同替换):4.消费消息执行命令(请替换自己的ip,端口号,topic名)::java -cp .:./libs/* dms.kafka.demo.KafkaConsumerDemo 192.168.236.49:9092 topic-1393626260 test-grp结果如下(红框里根据个人不同替换):到此,今天的课程完成。附件里是今天的代码jar包(因为不支持直接上传jar后缀文件,只能压缩打包后传的。)。
  • [技术干货] MapReduce作业过程中的常用接口
    类org.apache.hadoop.mapreduce.Job的常用接口方法说明Job(Configuration conf, String jobName),Job(Configuration conf)新建一个MapReduce客户端,用于配置作业属性,提交作业。setMapperClass(Class < extends Mapper> cls)核心接口,指定MapReduce作业的Mapper类,默认为空。也可以在“mapred-site.xml”中配置“mapreduce.job.map.class”项。setReducerClass(Class< extends Reducer> cls)核心接口,指定MapReduce作业的Reducer类,默认为空。也可以在“mapred-site.xml”中配置“mapreduce.job.reduce.class”项。setCombinerClass(Class< extends Reducer> cls)指定MapReduce作业的Combiner类,默认为空。也可以在“mapred-site.xml”中配置“mapreduce.job.combine.class”项。需要保证reduce的输入输出key,value类型相同才可以使用,谨慎使用。setInputFormatClass(Class< extends InputFormat> cls)核心接口,指定MapReduce作业的InputFormat类,默认为TextInputFormat。也可以在“mapred-site.xml”中配置“mapreduce.job.inputformat.class”项。该设置用来指定处理不同格式的数据时需要的InputFormat类,用来读取数据,切分数据块。setJarByClass(Class< > cls)核心接口,指定执行类所在的jar包本地位置。java通过class文件找到执行jar包,该jar包被上传到HDFS。setJar(String jar)指定执行类所在的jar包本地位置。直接设置执行jar包所在位置,该jar包被上传到HDFS。与setJarByClass(Class< > cls)选择使用一个。也可以在“mapred-site.xml”中配置“mapreduce.job.jar”项。setOutputFormatClass(Class< extends OutputFormat> theClass)核心接口,指定MapReduce作业的OutputFormat类,默认为TextOutputFormat。也可以在“mapred-site.xml”中配置“mapred.output.format.class”项,指定输出结果的数据格式。例如默认的TextOutputFormat把每条key,value记录写为文本行。通常场景不配置特定的OutputFormat。setOutputKeyClass(Class< > theClass)核心接口,指定MapReduce作业的输出key的类型,也可以在“mapred-site.xml”中配置“mapreduce.job.output.key.class”项setOutputValueClass(Class< > theClass)核心接口,指定MapReduce作业的输出value的类型,也可以在“mapred-site.xml”中配置“mapreduce.job.output.value.class”项setPartitionerClass(Class< extends Partitioner> theClass)指定MapReduce作业的Partitioner类。也可以在“mapred-site.xml”中配置“mapred.partitioner.class”项。该方法用来分配map的输出结果到哪个reduce类,默认使用HashPartitioner,均匀分配map的每条键值对记录。例如在hbase应用中,不同的键值对应的region不同,这就需要设定特殊的partitioner类分配map的输出结果。setMapOutputCompressorClass(Class< extends CompressionCodec> codecClass)指定MapReduce作业的map任务的输出结果压缩类,默认不使用压缩。也可以在“mapred-site.xml”中配置“mapreduce.map.output.compress”和“mapreduce.map.output.compress.codec”项。当map的输出数据大,减少网络压力,使用压缩传输中间数据。setJobPriority(JobPriority prio)指定MapReduce作业的优先级,共有5个优先级别,VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW,默认级别为NORMAL。也可以在“mapred-site.xml”中配置“mapreduce.job.priority”项。setQueueName(String queueName)指定MapReduce作业的提交队列。默认使用default队列。也可以在“mapred-site.xml”中配置“mapreduce.job.queuename”项。setNumMapTasks(int n)核心接口,指定MapReduce作业的map个数。也可以在“mapred-site.xml”中配置“mapreduce.job.maps”项。说明:注意:指定的InputFormat类用来控制map任务个数,注意该类是否支持客户端设定map个数。setNumReduceTasks(int n)核心接口,指定MapReduce作业的reduce个数。默认只启动1个。也可以在“mapred-site.xml”中配置“mapreduce.job.reduces”项。reduce个数由用户控制,通常场景reduce个数是map个数的1/4。
  • [转载]Maven依赖的JAR包下载慢?赶紧看过来
    [转载]Maven依赖的JAR包下载慢?赶紧看过来2019年03月27日 16:24:01 DevCloud 阅读数:25更多个人分类: 技术交流文:华为云DevCloud 亲亲土豆相信许多JAVA开发者在日常工作中时常会碰到这种情况,那就是编译Maven工程时,工程所依赖的jar包文件下载非常慢,甚至经常出现下载不成功的问题,今天,小编就给大家讲讲如何提升Maven依赖包的下载速度由于Maven工程默认配置的依赖仓库主要部署在国外,从国内下载速度较慢,国内许多高校或公司通过架设开源镜像站来解决该问题,这些镜像站一般都是向国内开发者开放的,我们可以通过配置国内的镜像来解决下载速度慢的问题。所谓开源镜像站,指的是存放开源操作系统、开源组件等镜像文件的站点,国内的镜像站通过定期/实时同步国外源站的开源操作系统或组件,为国内用户提供高速、稳定的依赖包下载服务。目前国内比较常用的镜像站包括华为开源镜像站、清华大学镜像站、中科大镜像站等等,今天主要以华为开源镜像站为示例给大家进行讲解方式一,配置针对所有项目的全局镜像库在Maven安装目录下找到Maven的配置文件setting.xml,里面有个<mirrors>配置项目,这里配置了所有的全局镜像,你可以在<mirrors>下增加以下节点:<mirror>    <id>huaweicloud</id>    <mirrorOf>*</mirrorOf>    <url>https://mirrors.huaweicloud.com/repository/maven/</url></mirror>如下图所示:需要注意的是,<mirrors>下配置了多个镜像库时,只有当第一个镜像库无法连接时,才会使用第二个镜像库查找jar文件,否则即使第一个镜像库里找不到想的jar文件,也不会去第二个镜像库查找。因此,若需要配置多个镜像库,可将<mirrorOf>设置为*,!repo1,在<profiles>标签中增加个性化配置,并在<activeProfiles>标签中将其激活,完整如下图所示:方式二,配置针对单个项目的镜像库 在项目的maven配置文件pom.xml里,添加repositories配置即可,如下:<repositories><repository><id>huaweicloud</id><name>huaweicloud</name><url>>https://mirrors.huaweicloud.com/repository/maven/</url></repository></repositories>如下图所示:注意:在pom.xml中配置了repository后,setting.xml文件中关于mirror部分的<mirrorOf>标签不能设置为*,否则pom.xml中的repository配置不会生效。<mirrorOf>需要配置为*,!huaweicloud将huaweicloud镜像设为例外,如下图:更多信息可以参考华为开源镜像站。来源:https://devcloud.blog.csdn.net/article/details/88848080
  • [技术干货] 运行 java -jar 命令启动可执行jar包报错
    部分同学在执行java -jar helloworld-provider-0.0.1-SNAPSHOT.jar命令启动可执行jar包的时候,会碰到错误信息"错误: 找不到或无法加载主类 —jar"这通常是因为输入命令是,没有将输入法从中文切换为英文,输入的横杠"—"不是英文的"-"符号。仔细对比一下还是可以看出这两种横杠是有一点区别的:错误版的:正确版的:
  • [技术干货] 磁盘上的microservice.yaml文件、环境变量中的配置无法覆盖jar包内配置的问题排查方法
    21天微服务培训第5天打卡作业中,需要大家在可执行jar包中放置一份microservice.yaml配置文件来覆盖jar包内的配置,然后用环境变量配置来覆盖配置文件的配置。部分同学会发现磁盘目录里的microservice.yaml文件、环境变量无法起到覆盖配置的效果,原因通常有以下几种:1. microservice.yaml文件没有被加载查看服务的cse.log日志文件,搜索关键字"create local config",查看其下的加载记录,可以看到类似这样的内容[2019-03-17 14:36:39,494/CST][main][INFO]create local config: org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:114) [2019-03-17 14:36:39,494/CST][main][INFO] jar:file:/private/tmp/yhs/lib/java-chassis-core-1.1.0.B036.jar!/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116) [2019-03-17 14:36:39,495/CST][main][INFO] jar:file:/private/tmp/yhs/lib/cse-solution-service-engine-2.3.62.jar!/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116) [2019-03-17 14:36:39,495/CST][main][INFO] jar:file:/private/tmp/yhs/helloworld-provider-0.0.1-SNAPSHOT.jar!/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116) [2019-03-17 14:36:39,495/CST][main][INFO] file:/private/tmp/yhs/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116)表示总共加载了四份microservice.yaml配置文件,前三份是jar包内的,最后一份是磁盘文件。这里的microservice.yaml文件是越靠后的优先级越高。如果没有看到加载磁盘文件,只加载了jar包内的microservice.yaml文件,则说明你的microservice.yaml文件没被加载。可能的原因有多种:- microservice.yaml文件的文件名不对、存放目录不对- 打包插件配置不对,jar包所在目录不在classpath中前者需要你自行检查配置文件,后者可以通过将jar包当做zip包解压,查看META目录下的MANIFEST.MF文件来排查。如果的确没有将"."目录加入到classpath中,则需要检查你在pom文件中设置的打包插件是否有问题,建议和demo文件比对一下。MANIFEST.MF文件示例:2. microservice.yaml文件的字符集、换行符问题推荐使用UTF-8字符集和Unix换行符以避免可能出现的问题。3. 有旧provider服务的JVM进程残留,占用了端口有些同学可能没有将旧的provider服务的实例关闭,导致旧provider服务的进程还在运行,占用着8080端口。此时新的provider服务启动时无法监听8080端口,即使它加载了配置文件,由于你发送的请求是由旧provider服务实例来处理的,你还是看不到响应消息有任何变化。此时可以执行 jps -l 命令检查一下是否有遗留的provider服务实例进程。如果有进程残留建议先全部kill掉再重新启动provider服务。
  • [技术干货] fundation-vertx-1.1.0B022.jar获取cookie时针对cookie中带有version报错
        今天升级变更使用了fundation-vertx-1.1.0B022.jar获取cookie,由于cookie中携带有version=1,导致报错,但是version改成其他名称就能通过,请教下是不是包中serviceCombo里有对这个字段做处理或者有什么配置,反编译看不到.有报错:.|java.lang.IllegalArgumentException: Cookie name "version" is a reserved token\n at javax.servlet.http.Cookie.<init>(Cookie.java:192)\n at org.apache.servicecomb.foundation.vertx.http.VertxServerRequestToHttpServletRequest.getCookies(VertxServerRequestToHttpServletRequest.java:99)\n at com.huawei.ttmusic.common.filter.InitFilter.handelToken(InitFilter.java:260)\n at
总条数:98 到第
上滑加载中