[
https://issues.apache.org/jira/browse/SCB-1795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
何一乐 updated SCB-1795:
---------------------
Description:
{code:java}
public class Person {
private String name;
public String getName() {
return name;
}
public Person setName(String name) {
this.name = name;
return this;
}
}
//provider
@RequestMapping(value = "/test", method = RequestMethod.GET)
public void queryEvents(Person person) {
System.out.println(person);
}
{code}
error:
{code:java}
Caused by: java.lang.IllegalStateException: Failed to create lambda from public
org.apache.servicecomb.demo.springmvc.server.Person
org.apache.servicecomb.demo.springmvc.server.Person.setRkdName(java.lang.String)
at
org.apache.servicecomb.foundation.common.utils.LambdaMetafactoryUtils.createLambda(LambdaMetafactoryUtils.java:139)
at
org.apache.servicecomb.swagger.invocation.arguments.producer.ProducerArgumentsMapperCreator.processBeanParameter(ProducerArgumentsMapperCreator.java:117)
at
org.apache.servicecomb.swagger.invocation.arguments.AbstractArgumentsMapperCreator.doCreateArgumentsMapper(AbstractArgumentsMapperCreator.java:179)
at
org.apache.servicecomb.swagger.invocation.arguments.producer.ProducerArgumentsMapperCreator.createArgumentsMapper(ProducerArgumentsMapperCreator.java:60)
at
org.apache.servicecomb.swagger.engine.SwaggerEnvironment.createProducer(SwaggerEnvironment.java:142)
at
org.apache.servicecomb.core.provider.producer.ProducerProviderManager.registerSchema(ProducerProviderManager.java:93)
at
org.apache.servicecomb.core.provider.producer.ProducerProviderManager.regsiterProducerMetas(ProducerProviderManager.java:82)
at
org.apache.servicecomb.core.provider.producer.ProducerProviderManager.init(ProducerProviderManager.java:68)
at org.apache.servicecomb.core.SCBEngine.doRun(SCBEngine.java:342)
at org.apache.servicecomb.core.SCBEngine.run(SCBEngine.java:297)
... 13 more
Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for lambda
expected return: class org.apache.servicecomb.demo.springmvc.server.Person is
not convertible to void
at
java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:286)
at
java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
at
org.apache.servicecomb.foundation.common.utils.LambdaMetafactoryUtils.createLambda(LambdaMetafactoryUtils.java:129)
... 22 more
{code}
was:
{code:java}
public class Person {
private String name;
public String getName() {
return name;
}
public Person setName(String name) {
this.name = name;
return this;
}
}
//provider
@RequestMapping(value = "/test", method = RequestMethod.GET)
public void queryEvents(Person person) {
System.out.println(person);
}
{code}
> when use query object, sdk don't support fluent setter
> ------------------------------------------------------
>
> Key: SCB-1795
> URL: https://issues.apache.org/jira/browse/SCB-1795
> Project: Apache ServiceComb
> Issue Type: Bug
> Reporter: 何一乐
> Priority: Major
>
> {code:java}
> public class Person {
> private String name;
> public String getName() {
> return name;
> }
> public Person setName(String name) {
> this.name = name;
> return this;
> }
> }
> //provider
> @RequestMapping(value = "/test", method = RequestMethod.GET)
> public void queryEvents(Person person) {
> System.out.println(person);
> }
> {code}
> error:
> {code:java}
> Caused by: java.lang.IllegalStateException: Failed to create lambda from
> public org.apache.servicecomb.demo.springmvc.server.Person
> org.apache.servicecomb.demo.springmvc.server.Person.setRkdName(java.lang.String)
> at
> org.apache.servicecomb.foundation.common.utils.LambdaMetafactoryUtils.createLambda(LambdaMetafactoryUtils.java:139)
> at
> org.apache.servicecomb.swagger.invocation.arguments.producer.ProducerArgumentsMapperCreator.processBeanParameter(ProducerArgumentsMapperCreator.java:117)
> at
> org.apache.servicecomb.swagger.invocation.arguments.AbstractArgumentsMapperCreator.doCreateArgumentsMapper(AbstractArgumentsMapperCreator.java:179)
> at
> org.apache.servicecomb.swagger.invocation.arguments.producer.ProducerArgumentsMapperCreator.createArgumentsMapper(ProducerArgumentsMapperCreator.java:60)
> at
> org.apache.servicecomb.swagger.engine.SwaggerEnvironment.createProducer(SwaggerEnvironment.java:142)
> at
> org.apache.servicecomb.core.provider.producer.ProducerProviderManager.registerSchema(ProducerProviderManager.java:93)
> at
> org.apache.servicecomb.core.provider.producer.ProducerProviderManager.regsiterProducerMetas(ProducerProviderManager.java:82)
> at
> org.apache.servicecomb.core.provider.producer.ProducerProviderManager.init(ProducerProviderManager.java:68)
> at org.apache.servicecomb.core.SCBEngine.doRun(SCBEngine.java:342)
> at org.apache.servicecomb.core.SCBEngine.run(SCBEngine.java:297)
> ... 13 more
> Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for
> lambda expected return: class
> org.apache.servicecomb.demo.springmvc.server.Person is not convertible to void
> at
> java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:286)
> at
> java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
> at
> org.apache.servicecomb.foundation.common.utils.LambdaMetafactoryUtils.createLambda(LambdaMetafactoryUtils.java:129)
> ... 22 more
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)