fix a bug that spring-mvc set an error endpoint name (#6783)
This commit is contained in:
parent
db1d655b47
commit
10ddf0c373
|
|
@ -17,7 +17,8 @@ Release Notes.
|
|||
* Add Seata in the component definition. Seata plugin hosts on Seata project.
|
||||
* Extended Kafka plugin to properly trace consumers that have topic partitions directly assigned.
|
||||
* Support print SkyWalking context to logs.
|
||||
* Add `MessageListener` enhancement in pulsar plugin
|
||||
* Add `MessageListener` enhancement in pulsar plugin.
|
||||
* fix a bug that spring-mvc set an error endpoint name if the controller class annotation implements an interface.
|
||||
* Add an optional agent plugin to support mybatis.
|
||||
|
||||
#### OAP-Backend
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import org.apache.skywalking.apm.plugin.spring.mvc.commons.PathMappingCache;
|
|||
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
|
||||
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor;
|
||||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
|
||||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
/**
|
||||
|
|
@ -32,7 +33,7 @@ public class ControllerConstructorInterceptor implements InstanceConstructorInte
|
|||
@Override
|
||||
public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
|
||||
String basePath = "";
|
||||
RequestMapping basePathRequestMapping = objInst.getClass().getAnnotation(RequestMapping.class);
|
||||
RequestMapping basePathRequestMapping = AnnotationUtils.findAnnotation(objInst.getClass(), RequestMapping.class);
|
||||
if (basePathRequestMapping != null) {
|
||||
if (basePathRequestMapping.value().length > 0) {
|
||||
basePath = basePathRequestMapping.value()[0];
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedI
|
|||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
|
||||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.PathMappingCache;
|
||||
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor;
|
||||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
/**
|
||||
|
|
@ -42,7 +43,7 @@ public class ControllerConstructorInterceptor implements InstanceConstructorInte
|
|||
@Override
|
||||
public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
|
||||
String basePath = "";
|
||||
RequestMapping basePathRequestMapping = objInst.getClass().getAnnotation(RequestMapping.class);
|
||||
RequestMapping basePathRequestMapping = AnnotationUtils.findAnnotation(objInst.getClass(), RequestMapping.class);
|
||||
if (basePathRequestMapping != null) {
|
||||
if (basePathRequestMapping.value().length > 0) {
|
||||
basePath = basePathRequestMapping.value()[0];
|
||||
|
|
|
|||
|
|
@ -22,13 +22,14 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedI
|
|||
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor;
|
||||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
|
||||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.PathMappingCache;
|
||||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
public class ControllerForLowVersionConstructorInterceptor implements InstanceConstructorInterceptor {
|
||||
@Override
|
||||
public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
|
||||
String basePath = "";
|
||||
RequestMapping basePathRequestMapping = objInst.getClass().getAnnotation(RequestMapping.class);
|
||||
RequestMapping basePathRequestMapping = AnnotationUtils.findAnnotation(objInst.getClass(), RequestMapping.class);
|
||||
if (basePathRequestMapping != null) {
|
||||
if (basePathRequestMapping.value().length > 0) {
|
||||
basePath = basePathRequestMapping.value()[0];
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedI
|
|||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
|
||||
import org.apache.skywalking.apm.plugin.spring.mvc.commons.PathMappingCache;
|
||||
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor;
|
||||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
/**
|
||||
|
|
@ -42,7 +43,7 @@ public class ControllerConstructorInterceptor implements InstanceConstructorInte
|
|||
@Override
|
||||
public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
|
||||
String basePath = "";
|
||||
RequestMapping basePathRequestMapping = objInst.getClass().getAnnotation(RequestMapping.class);
|
||||
RequestMapping basePathRequestMapping = AnnotationUtils.findAnnotation(objInst.getClass(), RequestMapping.class);
|
||||
if (basePathRequestMapping != null) {
|
||||
if (basePathRequestMapping.value().length > 0) {
|
||||
basePath = basePathRequestMapping.value()[0];
|
||||
|
|
|
|||
|
|
@ -35,11 +35,7 @@ public class RequestMappingMethodInterceptor extends AbstractMethodInterceptor {
|
|||
String requestURL = null;
|
||||
RequestMapping methodRequestMapping = AnnotationUtils.getAnnotation(m, RequestMapping.class);
|
||||
if (methodRequestMapping != null) {
|
||||
if (methodRequestMapping.value().length > 0) {
|
||||
requestURL = methodRequestMapping.value()[0];
|
||||
} else if (methodRequestMapping.path().length > 0) {
|
||||
requestURL = methodRequestMapping.path()[0];
|
||||
}
|
||||
requestURL = methodRequestMapping.value().length > 0 ? methodRequestMapping.value()[0] : "";
|
||||
}
|
||||
return requestURL;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -14,52 +14,130 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
segmentItems:
|
||||
- serviceName: spring-3.0.x-scenario
|
||||
segmentSize: ge 2
|
||||
segments:
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /healthCheck
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/healthCheck'}
|
||||
- {key: http.method, value: HEAD}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod,
|
||||
operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff,
|
||||
operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness,
|
||||
operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- operationName: /case/spring3
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/case/spring3'}
|
||||
- {key: http.method, value: GET}
|
||||
skipAnalysis: 'false'
|
||||
- serviceName: spring-3.0.x-scenario
|
||||
segmentSize: ge 4
|
||||
segments:
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /healthCheck
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/healthCheck'}
|
||||
- {key: http.method, value: HEAD}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /impl/requestmapping
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/impl/requestmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/spring3, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 5, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.0.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/impl/restmapping'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/impl/restmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/spring3, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 6, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.0.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod,
|
||||
operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff,
|
||||
operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness,
|
||||
operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- operationName: /spring-3.0.x-scenario/impl/requestmapping
|
||||
operationId: 0
|
||||
parentSpanId: 4
|
||||
spanId: 5
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/impl/requestmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
- operationName: /spring-3.0.x-scenario/impl/restmapping
|
||||
operationId: 0
|
||||
parentSpanId: 4
|
||||
spanId: 6
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/impl/restmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doInvokeImplCase,
|
||||
operationId: 0, parentSpanId: 0, spanId: 4, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- operationName: /case/spring3
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.0.x-scenario/case/spring3'}
|
||||
- {key: http.method, value: GET}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ public class CaseController {
|
|||
@ResponseBody
|
||||
public String updateUser() {
|
||||
testServiceBean.doSomeBusiness("test");
|
||||
testServiceBean.doInvokeImplCase();
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package test.apache.skywalking.apm.testcase.spring3.implinterface;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
@Controller
|
||||
public class TestCaseController implements TestCaseInterface {
|
||||
|
||||
@Override
|
||||
public String implRequestMappingAnnotationTestCase() {
|
||||
return "implRequestMappingAnnotationTestCase";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String implRestAnnotationTestCase() {
|
||||
return "implRestAnnotationTestCase";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package test.apache.skywalking.apm.testcase.spring3.implinterface;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
@RequestMapping("/impl")
|
||||
public interface TestCaseInterface {
|
||||
@RequestMapping("/requestmapping")
|
||||
@ResponseBody
|
||||
String implRequestMappingAnnotationTestCase();
|
||||
|
||||
@RequestMapping(value = "/restmapping", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
String implRestAnnotationTestCase();
|
||||
}
|
||||
|
|
@ -20,11 +20,14 @@ package test.apache.skywalking.apm.testcase.spring3.service;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean;
|
||||
import test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean;
|
||||
|
||||
@Service
|
||||
public class TestServiceBean {
|
||||
public static final String URL = "http://localhost:8080/spring-3.0.x-scenario";
|
||||
|
||||
@Autowired
|
||||
private TestComponentBean componentBean;
|
||||
|
||||
|
|
@ -35,4 +38,10 @@ public class TestServiceBean {
|
|||
componentBean.componentMethod(name);
|
||||
repositoryBean.doSomeStuff(name);
|
||||
}
|
||||
|
||||
public void doInvokeImplCase() {
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
restTemplate.getForObject(URL + "/impl/requestmapping", String.class);
|
||||
restTemplate.getForObject(URL + "/impl/restmapping", String.class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,236 +14,315 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
segmentItems:
|
||||
- serviceName: spring-3.1.x-scenario
|
||||
segmentSize: ge 7
|
||||
segments:
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /healthCheck
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/healthCheck'}
|
||||
- {key: http.method, value: HEAD}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod,
|
||||
operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff,
|
||||
operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness,
|
||||
operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- operationName: /case/spring3
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/case/spring3/'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 1, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-3.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{POST}/create/'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 2, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-3.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/get/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 3, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-3.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{DELETE}/delete/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 5, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-3.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /spring-3.1.x-scenario/case/spring3/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 1
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/case/spring3/'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-3.1.x-scenario/create/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 2
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-3.1.x-scenario/get/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 3
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-3.1.x-scenario/update/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 4
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-3.1.x-scenario/delete/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 5
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /case/resttemplate
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/case/resttemplate'}
|
||||
- {key: http.method, value: GET}
|
||||
- key: http.params
|
||||
value: |-
|
||||
q1=[v1]
|
||||
chinese=[中文]
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{PUT}/update/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 4, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-3.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- serviceName: spring-3.1.x-scenario
|
||||
segmentSize: ge 9
|
||||
segments:
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /healthCheck
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/healthCheck'}
|
||||
- {key: http.method, value: HEAD}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod,
|
||||
operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff,
|
||||
operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness,
|
||||
operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- operationName: /case/spring3
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/case/spring3/'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 1, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{POST}/create/'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 2, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/get/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 3, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{DELETE}/delete/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 5, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{PUT}/update/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 4, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /impl/requestmapping
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/impl/requestmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 6, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /spring-3.1.x-scenario/case/spring3/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 1
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/case/spring3/'}
|
||||
- operationName: /spring-3.1.x-scenario/create/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 2
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
- operationName: /spring-3.1.x-scenario/get/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 3
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
- operationName: /spring-3.1.x-scenario/update/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 4
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
- operationName: /spring-3.1.x-scenario/delete/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 5
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
- operationName: /spring-3.1.x-scenario/impl/requestmapping
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 6
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/impl/requestmapping'}
|
||||
- operationName: /spring-3.1.x-scenario/impl/restmapping
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 7
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/impl/restmapping'}
|
||||
- operationName: /case/resttemplate
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/case/resttemplate'}
|
||||
- {key: http.method, value: GET}
|
||||
- key: http.params
|
||||
value: |-
|
||||
q1=[v1]
|
||||
chinese=[中文]
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/impl/restmapping'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-3.1.x-scenario/impl/restmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 7, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-3.1.x-scenario,
|
||||
traceId: not null}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package test.apache.skywalking.apm.testcase.implinterface;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
@Controller
|
||||
public class TestCaseController implements TestCaseInterface {
|
||||
|
||||
@Override
|
||||
public String implRequestMappingAnnotationTestCase() {
|
||||
return "implRequestMappingAnnotationTestCase";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String implRestAnnotationTestCase() {
|
||||
return "implRestAnnotationTestCase";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package test.apache.skywalking.apm.testcase.implinterface;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
@RequestMapping("/impl")
|
||||
public interface TestCaseInterface {
|
||||
@RequestMapping("/requestmapping")
|
||||
@ResponseBody
|
||||
String implRequestMappingAnnotationTestCase();
|
||||
|
||||
@RequestMapping(value = "/restmapping", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
String implRestAnnotationTestCase();
|
||||
}
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
package test.apache.skywalking.apm.testcase.resttemplate;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
|
@ -61,6 +62,14 @@ public class RestTemplateController {
|
|||
//Delete user
|
||||
new RestTemplate().delete(URL + "/delete/{id}", 1);
|
||||
|
||||
Request implRequestMappingRequest = new Request.Builder().url(URL + "/impl/requestmapping").build();
|
||||
response = new OkHttpClient().newCall(implRequestMappingRequest).execute();
|
||||
LOGGER.info(response.toString());
|
||||
|
||||
Request implRestMappingRequest = new Request.Builder().url(URL + "/impl/restmapping").build();
|
||||
response = new OkHttpClient().newCall(implRestMappingRequest).execute();
|
||||
LOGGER.info(response.toString());
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,232 +14,312 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
segmentItems:
|
||||
- serviceName: spring-4.1.x-scenario
|
||||
segmentSize: ge 7
|
||||
segments:
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /healthCheck
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/healthCheck'}
|
||||
- {key: http.method, value: HEAD}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod,
|
||||
operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff,
|
||||
operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness,
|
||||
operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq
|
||||
0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: 'false'}
|
||||
- operationName: /case/spring3
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/case/spring3/'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 1, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-4.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{POST}/create/'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 2, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-4.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/get/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 3, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-4.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{DELETE}/delete/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 5, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-4.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /spring-4.1.x-scenario/case/spring3/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 1
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/case/spring3/'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-4.1.x-scenario/create/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 2
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-4.1.x-scenario/get/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 3
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-4.1.x-scenario/update/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 4
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /spring-4.1.x-scenario/delete/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 5
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /case/resttemplate
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/case/resttemplate'}
|
||||
- {key: http.method, value: GET}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{PUT}/update/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 4, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
null, parentService: spring-4.1.x-scenario, traceId: not null}
|
||||
skipAnalysis: 'false'
|
||||
- serviceName: spring-4.1.x-scenario
|
||||
segmentSize: ge 9
|
||||
segments:
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /healthCheck
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/healthCheck'}
|
||||
- {key: http.method, value: HEAD}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod,
|
||||
operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff,
|
||||
operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- {operationName: test.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness,
|
||||
operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq 0,
|
||||
endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '',
|
||||
skipAnalysis: false}
|
||||
- operationName: /case/spring3
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/case/spring3/'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 1, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{POST}/create/'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 2, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/get/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 3, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{PUT}/update/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 4, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{DELETE}/delete/{id}'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 5, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /impl/requestmapping
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/impl/requestmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 6, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: /spring-4.1.x-scenario/case/spring3/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 1
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/case/spring3/'}
|
||||
- operationName: /spring-4.1.x-scenario/create/
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 2
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/create/'}
|
||||
- {key: http.method, value: POST}
|
||||
- operationName: /spring-4.1.x-scenario/get/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 3
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/get/1'}
|
||||
- {key: http.method, value: GET}
|
||||
- operationName: /spring-4.1.x-scenario/update/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 4
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/update/1'}
|
||||
- {key: http.method, value: PUT}
|
||||
- operationName: /spring-4.1.x-scenario/delete/1
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 5
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 13
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/delete/1'}
|
||||
- {key: http.method, value: DELETE}
|
||||
- operationName: /spring-4.1.x-scenario/impl/requestmapping
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 6
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/impl/requestmapping'}
|
||||
- operationName: /spring-4.1.x-scenario/impl/restmapping
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
spanId: 7
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 12
|
||||
isError: false
|
||||
spanType: Exit
|
||||
peer: localhost:8080
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/impl/restmapping'}
|
||||
- operationName: /case/resttemplate
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/case/resttemplate'}
|
||||
- {key: http.method, value: GET}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '{GET}/impl/restmapping'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
spanId: 0
|
||||
spanLayer: Http
|
||||
startTime: nq 0
|
||||
endTime: nq 0
|
||||
componentId: 14
|
||||
isError: false
|
||||
spanType: Entry
|
||||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/spring-4.1.x-scenario/impl/restmapping'}
|
||||
- {key: http.method, value: GET}
|
||||
refs:
|
||||
- {parentEndpoint: /case/resttemplate, networkAddress: 'localhost:8080', refType: CrossProcess,
|
||||
parentSpanId: 7, parentTraceSegmentId: not null,
|
||||
parentServiceInstance: not null, parentService: spring-4.1.x-scenario,
|
||||
traceId: not null}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package test.apache.skywalking.apm.testcase.implinterface;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
public class TestCaseController implements TestCaseInterface {
|
||||
|
||||
@Override
|
||||
public String implRequestMappingAnnotationTestCase() {
|
||||
return "implRequestMappingAnnotationTestCase";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String implRestAnnotationTestCase() {
|
||||
return "implRestAnnotationTestCase";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package test.apache.skywalking.apm.testcase.implinterface;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
@RequestMapping("/impl")
|
||||
public interface TestCaseInterface {
|
||||
@RequestMapping("/requestmapping")
|
||||
String implRequestMappingAnnotationTestCase();
|
||||
|
||||
@RequestMapping(value = "/restmapping", method = RequestMethod.GET)
|
||||
String implRestAnnotationTestCase();
|
||||
}
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
package test.apache.skywalking.apm.testcase.resttemplate;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
|
@ -61,6 +62,14 @@ public class RestTemplateController {
|
|||
//Delete user
|
||||
new RestTemplate().delete(URL + "/delete/{id}", 1);
|
||||
|
||||
Request implRequestMappingRequest = new Request.Builder().url(URL + "/impl/requestmapping").build();
|
||||
response = new OkHttpClient().newCall(implRequestMappingRequest).execute();
|
||||
LOGGER.info(response.toString());
|
||||
|
||||
Request implRestMappingRequest = new Request.Builder().url(URL + "/impl/restmapping").build();
|
||||
response = new OkHttpClient().newCall(implRestMappingRequest).execute();
|
||||
LOGGER.info(response.toString());
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,10 +21,11 @@ package test.apache.skywalking.apm.testcase.implinterface;
|
|||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@RequestMapping("/impl")
|
||||
public interface TestCaseInterface {
|
||||
@RequestMapping("/impl/requestmapping")
|
||||
@RequestMapping(path = "/requestmapping")
|
||||
String implRequestMappingAnnotationTestCase();
|
||||
|
||||
@GetMapping("/impl/restmapping")
|
||||
@GetMapping("/restmapping")
|
||||
String implRestAnnotationTestCase();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue