-
cse-dependency 2.3.73版本的cse ,对应的springboot1 是1.5.14版本,对应的springboot2是2.0.4版本,不清楚为什么cse会引入1.5.12版本
-
Spring Boot工程将microservice.yaml文件打到了jar包中,servicecomb.datacenter.availableZone需要在服务启动前替换,jar包内的文件无法修改,az的值又不可以写成环境变量,求助可以怎么解决这个问题?
-
化鲲为鹏,我有话说总结自己在云服务器上布置spring boot项目,可以简单的分为三个步骤:1.安装环境;2.上传jar/war项目;3.运行。安装环境a.下载Java(这里下载的是jdk8),通过wget命令wget http://mirrors.linuxeye.com/jdk/jdk-8u144-linux-x64.tar.gzb.解压(这里的目录是 /home/vcc/java)tar xzf jdk-8u144-linux-x64.tar.gz -C /home/vcc/javac.设置环境变量编辑/etc/profile文件:sudo vi /etc/profile进入编辑模式后在最后添加如下信息:#set java environmentexport JAVA_HOME=/home/vcc/java/jdk1.8.0_144export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/libexport PATH=$JAVA_HOME/bin:$PATH保存后退出,加载环境变量:source /etc/profile 2.上传jar包打包spring boot项目,通过xshell连接云服务器,将jar包上传至一个文件夹 3.运行通过命令(nohup的目的是让jar包在服务器上运行)$ nohup java -jar test.jar &
-
错误信息如下:java.lang.IllegalStateException: Failed to load ApplicationContextCaused by: java.lang.IllegalStateException: ServiceComb init failed.at org.apache.servicecomb.core.SCBEngine.init(SCBEngine.java:216)at org.apache.servicecomb.core.CseApplicationListener.onApplicationEvent(CseApplicationListener.java:81)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)at org.springframework.boot.context.event.EventPublishingRunListener.finished(EventPublishingRunListener.java:101)at org.springframework.boot.SpringApplicationRunListeners.callFinishedListener(SpringApplicationRunListeners.java:79)at org.springframework.boot.SpringApplicationRunListeners.finished(SpringApplicationRunListeners.java:72)at org.springframework.boot.SpringApplication.run(SpringApplication.java:305)at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:121)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)... 32 moreCaused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/MismatchedInputExceptionat org.apache.servicecomb.common.rest.codec.param.BodyProcessorCreator.create(BodyProcessorCreator.java:211)at org.apache.servicecomb.common.rest.definition.RestParam.init(RestParam.java:66)at org.apache.servicecomb.common.rest.definition.RestParam.<init>(RestParam.java:46)at org.apache.servicecomb.common.rest.definition.RestOperationMeta.init(RestOperationMeta.java:101)at org.apache.servicecomb.common.rest.locator.ServicePathManager.addSchema(ServicePathManager.java:86)at org.apache.servicecomb.common.rest.RestEngineSchemaListener.onSchemaLoaded(RestEngineSchemaListener.java:54)at org.apache.servicecomb.core.definition.loader.SchemaListenerManager.notifySchemaListener(SchemaListenerManager.java:59)at org.apache.servicecomb.core.definition.loader.SchemaListenerManager.notifySchemaListener(SchemaListenerManager.java:48)at org.apache.servicecomb.core.definition.loader.SchemaListenerManager.notifySchemaListener(SchemaListenerManager.java:54)at org.apache.servicecomb.core.SCBEngine.doInit(SCBEngine.java:245)at org.apache.servicecomb.core.SCBEngine.init(SCBEngine.java:209)... 45 moreCaused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.MismatchedInputExceptionat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
-
项目用Spring boot2 开发的, 原来通过Spring boot 默认的 AcceptHeaderLocaleResolver 机制,根据请求头中的Accept-Language 里值, 自动设定LocaleContextHolder了 Locale, 实现国际化, 集成了CSE后, 此功能失效了,Accept-Language里的值无法设定到 LocalContextHolder里, 从LocalContextHolder里取locale只能返回系统默认的语言,有什么办法解决?
-
项目是用spring boot2 开发的,现在集成cse, 用的是web方式,用项目里本身使用的jetty容器, 依赖里引入一下compile("org.apache.servicecomb:spring-boot2-starter-servlet:1.2.1")compile("com.huawei.paas.cse:cse-solution-service-engine:2.3.70")做了一些代码上的改造, 加了microservice.yaml , 在 intellij idea里可以正常运行, 但是打成jar包后在启动,发现问题,打印的日志:2019-07-24 13:29:59.887 - WARN 43428 --- [-thread-checker] io.vertx.core.impl.BlockedThreadChecker [line:51] : Thread Thread[vert.x-eventloop-thread-7,5,main] has been blocked for 4917 ms, time limit is 2000 ms2019-07-24 13:30:04.986 - WARN 43428 --- [-thread-checker] io.vertx.core.impl.BlockedThreadChecker [line:51] : Thread Thread[vert.xException in thread "qtp266273434-15" java.lang.OutOfMemoryError: MetaspaceException in thread "Thread-10" java.lang.OutOfMemoryError: Metaspace服务无法正常访问。 请问该怎么解决?
-
以springboot WEB容器方式启动时出现的NoClassDefFoundError异常:springboot版本:1.5.12CSE版本2.3.69(实际demo测试2.3.65版本及以上都会出现以下异常)demo链接(https://huaweicse.github.io/cse-java-chassis-doc/using-cse-in-spring-boot/java-application.html)org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ClockProvider at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) ~[spring-context-4.3.20.RELEASE.jar:4.3.20.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at com.github.yhs0092.javachassis.demo.AppMain.main(AppMain.java:12) [classes/:na] ....... Caused by: java.lang.NoClassDefFoundError: javax/validation/ClockProvider at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:33) ~[hibernate-validator-6.0.14.Final.jar:6.0.14.Final] at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276) ~[validation-api-1.1.0.Final.jar:na] at org.springframework.boot.validation.MessageInterpolatorFactory.getObject(MessageInterpolatorFactory.java:53) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$ValidatedLocalValidatorFactoryBean.<init>(ConfigurationPropertiesBindingPostProcessor.java:413) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.getValidator(ConfigurationPropertiesBindingPostProcessor.java:370) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.determineValidator(ConfigurationPropertiesBindingPostProcessor.java:354) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:316) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:292) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407) ~[spring-beans-4.3.20.RELEASE.jar:4.3.20.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1623) ~[spring-beans-4.3.20.RELEASE.jar:4.3.20.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.d**ateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.20.RELEASE.jar:4.3.20.RELEASE] ... 51 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.validation.ClockProvider at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_191] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_191] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_191] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_191] ... 62 common frames omitted这种问题起因可能是你想以sprongboot WEB容器方式启动CSE并且打成可执行jar包,当你引入以下依赖时可能就会出现启动异常了<dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-solution-service-engine</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <!--<exclusion> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </exclusion>--> </exclusions> </dependency>现阶段的解决办法是把cse-solution-service-engine的Hibernate-validator依赖排除掉,以上代码就是解决办法,去掉注释就OK了.
-
想问一下有无springboot打包方法 按照网上的方法打包之后 52180 找不到主类 在jar中的Mainfest修改之后仍无法找到
-
按照 https://docs.servicecomb.io/java-chassis/zh_CN/using-java-chassis-in-spring-boot/web-application.html 指导,在Springboot启动函数中添加“@SpringBootApplication(exclude=DispatcherServletAutoConfiguration.class)”,在microservice.yaml中添加“servicecomb.rest.servlet.urlPattern”,但是启动报错,如下图所示。指导文档:工程代码:报错:[ERROR] 2019-04-02 03:00:03,822 org.springframework.boot.SpringApplication -restartedMain- Application run failedorg.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatServletWebServerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletPath' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}.....Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletPath' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
-
以下以windows系统进行演示,linux类似,mac系统暂不支持1,下载mesher 下载地址:mesher 进入CSE界面后点击 开发工具,如下图2,配置及启动mesher 2.1,下载mesher后并解压后可以看到,以下目录2.2,修改mesher配置,在 {path}/mesher-1.5.2-windows-amd64/conf 进行配置配置修改,需修改以下三个文件 2.2.1,在auth.yaml文件中配置ak/sk,修改下图红框内容,配置如下 2.2.2,修改chassis,yaml文件监听地址为外部IP地址(端口不建议修改,如有修改在MyProxySelector.java中的端口亦须要修改),windows请使用ipconfig,linux使用ifconfig。获取示例将在文档末尾演示2.2.3 ,修改microservice.yaml文件,文件中添加APPLICATION_ID: APPLICATION_ID: Training21Days-HelloWorld 以及修改服务名为 springboot2.3,启动mesher 2.3.1,使用start.bat启动,启动前需要修改以下内容,将SET SPECIFIC_ADDR=127.0.0.1:3000 修改为SET SERVICE_PORTS=rest:9091修改后如下 2.3.2,修改完后,双击start.bat进行启动,可以看到 springboot服务,即为mesher启动成功3,启动springboot应用3.1,点击 Application.java 文件中进行启动。如下为idea启动4,启动Day11-homework的provider与consumer 4.1,启动前需要修改consumer(即client)端schema下的client.go文件,修改如下 4.2,修改后参考Day11启动实操启动,参考链接: https://bbs.huaweicloud.com/blogs/55dbff1d4d2e11e9bd5a7ca23e93a891 4.3,服务全部成功运行后,可以看到以下三个服务(此处需要注意的是,由于springboot没有接入CSE的能力,所有服务中心无法看到该服务,服务中心看到的springboot为mesher启动的服务)5,服务验证 5.1,验证springboot服务 访问springboot提供的provider接口进行验证,访问url: http://127.0.0.1:9091/provider/v0/hello/test-name ,得到以下应答: 5.2,验证springboot调用go,通过访问访问consumer接口进行验证 5.2.1,springboot-consumer的hello接口提供的参数形式为path,访问url : http://127.0.0.1:9091/consumer/v0/hello/test-name ,得到以下应答:此时成功调用go后,mesher会出现如下日志: 5.2.2,打卡验证 ,访问url http://127.0.0.1:9091/consumer/v0/greeting 5.2.3,成功访问后,go-provider可以看到如下日志5.3,验证go调用springboot,通过访问Day11的consumer接口进行验证 5.3.1,访问hello接口 ,Day11的consumer的hello接口提供的参数形式为query,访问url:http://127.0.0.1:8081/consumer/v0/hello?name=test-name ,得到以下应答此时go成功通过mesher调用spring boot后,mesher可以看到如下日志5.3.2,打卡验证 访问url: http://127.0.0.1:8081/consumer/v0/greeting 6,FAQ 6.1, SERVICE_PORTS 该如何配置?端口该如何确定? SERVICE_PORTS支持配置有: SERVICE_PORTS=rest:{port},SERVICE_PORTS=grpc:{port},SERVICE_PORTS="rest:{port},grpc:{port}",支持以上三种配置方式。该如何确定端口呢,如下图。 6.2,代理应该如何设置? 代理的IP设置为127.0.0.1。设置的端口则为mesher监听的端口。6.3 为何需要设置外部IP地址?windows通过ipconfig进行获取该IP,如下:因为mesher通过配置为127.0.0.1还是外部地址判断mesher是作为provider的带来还是consumer的代理。此处mesher需要作为provider端(go---->mesher--->springboot)的代理,所以需要设置为外部IP地址。6.4,为何mesher启动后没有契约?需要通过配置SCHEMA_ROOT 来管理mesher的契约(mesh不会自动获取代理服务的契约)。契约管理 : https://support.huaweicloud.com/devg-cse/cse_mesh_0023.html
-
从我们目前已知的情况, CSE支持spring boot 1和spring boot 2的所有版本,缺省依赖的是1.5.12.RELEASE和2.0.0.RELEASE。 CSE和Spring Boot集成的原理可以参考: https://bbs.huaweicloud.com/blogs/eca98a6f399a11e9bd5a7ca23e93a891这里有和spring boot1和spring boot2的例子: spring boot 2: https://github.com/huaweicse/cse-java-chassis-samples/tree/master/porter spring boot 1: https://github.com/huaweicse/cse-java-chassis-samples/tree/master/springboot-samplespring boot1和spring boot2相关的pom依赖说明参考: https://huaweicse.github.io/cse-java-chassis-doc/using-cse-in-spring-boot/spring-boot-2.html
-
定义了如下接口: @GetMapping(path = "/v1/user111/ping", produces = MediaType.APPLICATION_JSON_VALUE) String ping111() { return null; }在Spring Boot下能够正常调用,切换CSE框架后,报告如下错误:o.a.s.c.rest.locator.OperationLocator : locate path failed, status:Not Found, http method:GET, path:/v1/user111/ping/, microserviceName:user-service出现这个原因是因为这个接口不是public的, CSE约束所有发布为接口的方法,必须是public,而spring boot则没这个限制。
-
错误日志: java.lang.IllegalStateException: Another strategy was already registered. at com.netflix.hystrix.strategy.HystrixPlugins.registerCommandExecutionHook这个日志是由于spring boot也注册了hystrix,bizkeeper也会注册,hystrix不允许同时注册,但是又没接口能够判断是否已经注册(get方法有bug),所以会打印一个警告。 不影响功能。 如果没有bizkeeper的功能,可以在handler配置里面把他移除。 这样cse就不会尝试注册hystrix了,就没有这个异常了。 默认是这个,如果你们没定制的话:# 处理链配置 handler: chain: Provider: default: qps-flowcontrol-provider,bizkeeper-provider Consumer: default: qps-flowcontrol-consumer,loadbalance,fault-injection-consumer,bizkeeper-consumer修改为:# 处理链配置 handler: chain: Provider: default: qps-flowcontrol-provider Consumer: default: qps-flowcontrol-consumer,loadbalance,fault-injection-consumer当然也可以打个断点调试下registerCommandExecutionHook方法,看看spring boot 的哪个模块调用了这个方法。 如果不使用spring boot的功能不使用,去掉对应的jar包依赖也是可以的。
-
2019-01-18 17:12:48.711 ERROR 9456 --- [ntloop-thread-0] o.a.s.config.client.ConfigCenterClient : Config update from https://cse.cn-north-1.myhuaweicloud.com failed.2019-01-18 17:12:48.711 ERROR 9456 --- [ntloop-thread-0] o.a.s.config.client.ConfigCenterClient : Server error message is [{"error_code":"SVCSTG.CSE.400607","error_message":"According to the value of 'mutidimen.configKeyFormat', dimensionsInfo ('${spring.application.name}@houseapp#0.0.1') shouldn't have special char '[$, %, ^, &, +, /, , \\]'"}].这个错误是由于微服务名称错误。 从日志看出,微服务名称是 ${spring.application.name} ,这个是一个place holer。 需要制定这个配置项的值。
-
下载并安装好JDK。2. 下载SpringBoot开发工具STS,根据操作系统选择不同的STS下载。下载地址: https://spring.io/tools/sts/all3. 解压,双击 sts-bundle/sts-3.9.5.RELEASE/STS.exe 打开STS,填写workspace路径。4. 选择 File – New – Spring Starter Project,点击Next,选择Spring Boot版本,点击Finish。5. 选择 Windows – Preference – Maven – User Settings,选择Maven配置文件路径。6. 选中项目,右键 – Maven – Update Project。7. 运行项目,右键 – Run as – Spring Boot App。8. 编写hello world,新建一个Controller类。9. 重新运行项目,右键 – Run as – Spring Boot App。10. 浏览器输入 http://localhost:8080/hello 得到如下图所示结果,表示Springboot项目运行成功。
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签