[
https://issues.apache.org/jira/browse/SCB-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401438#comment-16401438
]
Willem Jiang commented on SCB-407:
----------------------------------
It turns out the servicecomb discovery client[ remove the rest transport
dependency|https://github.com/apache/incubator-servicecomb-java-chassis/commit/7052c7d4429422f215c4648be65b4d94e97a185d#diff-59f8104e53a3259b36b01cfde3992778]
which leads to SimpleLoadBalanceHandler cannot find right endpoint (which
exports as a rest endpoint) to use.
We need to reorganize the spring starter dependencies to let user configure the
endpoint easily.
> Company Manager integration test failure
> -----------------------------------------
>
> Key: SCB-407
> URL: https://issues.apache.org/jira/browse/SCB-407
> Project: Apache ServiceComb
> Issue Type: Bug
> Components: Java-Chassis
> Reporter: Willem Jiang
> Priority: Major
>
> When running the integration test of manager-tests in
> [ServiceComb-Company-WorkShop
> |https://github.com/ServiceComb/ServiceComb-Company-WorkShop]1.x branch , we
> got the error here.
> {code:java}
> 2018-03-16 08:58:21,997 [ERROR]
> Exception: org.apache.servicecomb.core.exception.CseException; No available
> address found. microserviceName=doorman, version=latest,
> discoveryGroupName=latest/
> ServiceDefinitionException Code:cse.lb.no.available.address, Message:No
> available address found. microserviceName=doorman, version=latest,
> discoveryGroupName=latest/
> at
> org.apache.servicecomb.core.exception.ExceptionUtils.createCseException(ExceptionUtils.java:57)
> at
> org.apache.servicecomb.core.exception.ExceptionUtils.lbAddressNotFound(ExceptionUtils.java:88)
> at
> org.apache.servicecomb.core.handler.impl.SimpleLoadBalanceHandler.handle(SimpleLoadBalanceHandler.java:64)
> at org.apache.servicecomb.core.Invocation.next(Invocation.java:155)
> at
> org.apache.servicecomb.core.handler.ShutdownHookHandler.handle(ShutdownHookHandler.java:68)
> at org.apache.servicecomb.core.Invocation.next(Invocation.java:155)
> at
> org.apache.servicecomb.core.provider.consumer.InvokerUtils.innerSyncInvoke(InvokerUtils.java:65)
> at
> org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest.doInvoke(CseClientHttpRequest.java:168)
> at
> org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest.invoke(CseClientHttpRequest.java:158)
> at
> org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest.execute(CseClientHttpRequest.java:119)
> at
> org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:652)
> at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
> at
> org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:407)
> at
> org.apache.servicecomb.provider.springmvc.reference.RestTemplateWrapper.postForEntity(RestTemplateWrapper.java:130)
> at
> org.apache.servicecomb.company.manager.AuthenticationService.validate(AuthenticationService.java:65)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> com.netflix.hystrix.contrib.javanica.command.MethodExecutionAction.execute(MethodExecutionAction.java:116)
> at
> com.netflix.hystrix.contrib.javanica.command.MethodExecutionAction.executeWithArgs(MethodExecutionAction.java:93)
> at
> com.netflix.hystrix.contrib.javanica.command.MethodExecutionAction.execute(MethodExecutionAction.java:78)
> at
> com.netflix.hystrix.contrib.javanica.command.GenericCommand$1.execute(GenericCommand.java:47)
> at
> com.netflix.hystrix.contrib.javanica.command.AbstractHystrixCommand.process(AbstractHystrixCommand.java:145)
> at
> com.netflix.hystrix.contrib.javanica.command.GenericCommand.run(GenericCommand.java:44)
> {code}
> Here are the log information before the exception is thrown
> {code}
> 2018-03-16 08:58:21,704 [INFO] Flipping property:
> doorman.ribbon.ActiveConnectionsLimit to use NEXT property:
> niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit =
> 2147483647
> com.netflix.config.ChainedDynamicProperty$ChainLink.checkAndFlip(ChainedDynamicProperty.java:115)
> 2018-03-16 08:58:21,730 [INFO] Mapped URL path [/manager/**] onto handler of
> type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
> org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:354)
> 2018-03-16 08:58:21,738 [INFO] Received request with query path:
> /doorman/rest/path/not/exist
> org.apache.servicecomb.company.manager.filters.AuthenticationAwareFilter.shouldFilter(AuthenticationAwareFilter.java:68)
> 2018-03-16 08:58:21,797 [INFO] Validating token
> eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJqb3JkYW4iLCJleHAiOjE1MjEyNDgzMDJ9.Y27L6MuVjF04nI40uGYbD7q4fliibh3ZM8wD40KC9hhLfdLG4sWjgCULAsDMedElooM_YnIKxWaHKXGxVyk3UQ
>
> org.apache.servicecomb.company.manager.AuthenticationService.validate(AuthenticationService.java:64)
> 2018-03-16 08:58:21,799 [INFO] create MicroserviceVersionRule, appId=company,
> microserviceName=doorman, versionRule=latest.
> org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.createAndInitMicroserviceVersionRule(MicroserviceVersions.java:185)
> 2018-03-16 08:58:21,800 [INFO] add microserviceVersion, appId=company,
> microserviceName=doorman, version=0.0.1, versionRule=latest.
> org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule.addMicroserviceVersion(MicroserviceVersionRule.java:80)
> 2018-03-16 08:58:21,800 [INFO] set instances, appId=company,
> microserviceName=doorman, versionRule=latest,
> instanceId=19e6f52c28b511e8915b0242ac110003,
> endpoints=[rest://localhost:8080/].
> org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule.lambda$setInstances$1(MicroserviceVersionRule.java:146)
> 2018-03-16 08:58:21,805 [INFO] load schema from service center,
> microservice=company:doorman:0.0.1, schemaId=authenticationRestEndpoint,
> result=true
> org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory.loadSwagger(ConsumerSchemaFactory.java:145)
> 2018-03-16 08:58:21,872 [INFO] register schema
> company/doorman/authenticationRestEndpoint
> org.apache.servicecomb.core.definition.loader.SchemaLoader.registerSchema(SchemaLoader.java:91)
> 2018-03-16 08:58:21,923 [INFO] generate
> org.apache.servicecomb.company.auth.endpoint.rest.Token in classLoader
> TomcatEmbeddedWebappClassLoader
> context: ROOT
> delegate: true
> ----------> Parent Classloader:
> sun.misc.Launcher$AppClassLoader@4aa298b7
> .
> org.apache.servicecomb.common.javassist.JavassistUtils.createClass(JavassistUtils.java:207)
> 2018-03-16 08:58:21,959 [INFO] generate
> cse.gen.company.doorman.authenticationRestEndpoint.AuthenticationControllerIntf
> in classLoader TomcatEmbeddedWebappClassLoader
> context: ROOT
> delegate: true
> ----------> Parent Classloader:
> sun.misc.Launcher$AppClassLoader@4aa298b7
> .
> org.apache.servicecomb.common.javassist.JavassistUtils.createClass(JavassistUtils.java:207)
> 2018-03-16 08:58:21,966 [INFO] found DiscoveryFilter:
> org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree.sort(DiscoveryTree.java:53)
> 2018-03-16 08:58:21,967 [INFO] DiscoveryFilter
> org.apache.servicecomb.core.filter.EndpointDiscoveryFilter.
> org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree.sort(DiscoveryTree.java:55)
> 2018-03-16 08:58:21,980 [INFO] add schema to service paths.
> company:doorman:authenticationRestEndpoint.
> org.apache.servicecomb.common.rest.locator.ServicePathManager.addSchema(ServicePathManager.java:91)
> 2018-03-16 08:58:21,981 [INFO] Found schema ids from service center,
> company:doorman:latest:[authenticationRestEndpoint]
> org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory.getOrCreateMicroserviceMeta(ConsumerSchemaFactory.java:102)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)