When using "id" as user key, and id's Java type is Long.
The ActAAAService throw
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
when try to call protected String username(USER_TYPE user) method.
User class:
@DB
@Entity
@Table(name = "u_user")
public class User implements SimpleBean, UserLinked {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
public Long id;
@Column(name = "open_id", unique = true, nullable = false, updatable = false)
public String openId;
@Column(updatable = false)
public String phone;
....
}
Log trace
2018-10-02 14:06:37.794 [XNIO-1 task-1] ERROR a.x.NetworkHandler - Error handling network request
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
at act.aaa.ActAAAService$Base.username(ActAAAService.java:220)
at act.aaa.ActAAAService$Base.buildPrincipalFrom(ActAAAService.java:190)
at act.aaa.ActAAAService$Base.principalOf(ActAAAService.java:169)
at act.aaa.ActAAAService$Base.findByName(ActAAAService.java:112)
at act.aaa.DefaultPersistentService.findByName(DefaultPersistentService.java:97)
at act.aaa.AAAService.resolvePrincipal(AAAService.java:312)
at act.aaa.AAAService.sessionResolved(AAAService.java:288)
at act.aaa.AAAPlugin$1.on(AAAPlugin.java:65)
at act.aaa.AAAPlugin$1.on(AAAPlugin.java:56)
at act.event.EventBus.callOn(EventBus.java:1310)
at act.event.EventBus.callOn(EventBus.java:1332)
at act.event.EventBus.callOn(EventBus.java:1367)
at act.event.EventBus._emitWithOnceBus(EventBus.java:1283)
at act.event.EventBus.emit(EventBus.java:847)
at act.app.ActionContext.resolve(ActionContext.java:1245)
at act.route.Router$ContextualHandler.handle(Router.java:1596)
at act.xio.NetworkHandler$3.run(NetworkHandler.java:158)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Now an new configuration aaa.user.username has been created to allow app to specify the username field of User class. If this configuration is not set then the default value email will be applied.
When using "id" as user key, and id's Java type is Long.
The ActAAAService throw
when try to call
protected String username(USER_TYPE user)
method.User class:
Log trace