-
场景: 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>
-
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
-
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自己开发并自己使用,并不希望第三方软件使用,去掉此部分风险小,因此采用屏蔽此部分的方法。
-
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无
-
使用华为镜像站创建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仓库?让其他开发者可以通过maven使用我的jar包。
-
构建的时候怎么配置mavne的settings.xml已经添加配置Maven私有依赖库
-
#化鲲为鹏,我有话说#如何打/解包使用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/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文件也下载下来放到本地仓库。
-
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后缀文件,只能压缩打包后传的。)。
-
类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包下载慢?赶紧看过来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 helloworld-provider-0.0.1-SNAPSHOT.jar命令启动可执行jar包的时候,会碰到错误信息"错误: 找不到或无法加载主类 —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=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
上滑加载中
推荐直播
-
TinyEngine低代码引擎系列第2讲——向下扎根,向上生长,TinyEngine灵活构建个性化低代码平台
2024/11/14 周四 16:00-18:00
王老师 华为云前端开发工程师,TinyEngine开源负责人
王老师将从TinyEngine 的灵活定制能力出发,带大家了解隐藏在低代码背后的潜在挑战及突破思路,通过实践及运用,帮助大家贴近面向未来低代码产品。
回顾中 -
华为云AI入门课:AI发展趋势与华为愿景
2024/11/18 周一 18:20-20:20
Alex 华为云学堂技术讲师
本期直播旨在帮助开发者熟悉理解AI技术概念,AI发展趋势,AI实用化前景,了解熟悉未来主要技术栈,当前发展瓶颈等行业化知识。帮助开发者在AI领域快速构建知识体系,构建职业竞争力。
去报名 -
华为云软件开发生产线(CodeArts)10月新特性解读
2024/11/19 周二 19:00-20:00
苏柏亚培 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线10月发布的新特性,并在直播过程中为您答疑解惑。
去报名
热门标签