-
场景: 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
上滑加载中
推荐直播
-
华为AI技术发展与挑战:集成需求分析的实战指南
2024/11/26 周二 18:20-20:20
Alex 华为云学堂技术讲师
本期直播将综合讨论华为AI技术的发展现状,技术挑战,并深入探讨华为AI应用开发过程中的需求分析过程,从理论到实践帮助开发者快速掌握华为AI应用集成需求的框架和方法。
去报名 -
华为云DataArts+DWS助力企业数据治理一站式解决方案及应用实践
2024/11/27 周三 16:30-18:00
Walter.chi 华为云数据治理DTSE技术布道师
想知道数据治理项目中,数据主题域如何合理划分?数据标准及主数据标准如何制定?数仓分层模型如何合理规划?华为云DataArts+DWS助力企业数据治理项目一站式解决方案和应用实践告诉您答案!本期将从数据趋势、数据治理方案、数据治理规划及落地,案例分享四个方面来助力企业数据治理项目合理咨询规划及顺利实施。
去报名
热门标签