java.lang.IllegalArgumentException: Unable to create an instance of 'com.mycompany.abc.ui.LoginView'. The constructor threw an exception.
at com.vaadin.flow.internal.ReflectTools.createProxyInstance(ReflectTools.java:512)
at com.vaadin.flow.internal.ReflectTools.createInstance(ReflectTools.java:449)
at com.vaadin.flow.di.DefaultInstantiator.create(DefaultInstantiator.java:137)
at com.vaadin.flow.di.DefaultInstantiator.getOrCreate(DefaultInstantiator.java:66)
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:160)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:137)
at java.util.Optional.orElseGet(Optional.java:267)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:136)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:525)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:505)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:222)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.reroute(AbstractNavigationStateRenderer.java:733)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleTransactionOutcome(AbstractNavigationStateRenderer.java:373)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:226)
at com.vaadin.flow.router.internal.ErrorStateRenderer.handle(ErrorStateRenderer.java:103)
at com.vaadin.flow.router.Router.handleExceptionNavigation(Router.java:287)
at com.vaadin.flow.router.Router.navigate(Router.java:222)
at com.vaadin.flow.router.Router.navigate(Router.java:186)
at com.vaadin.flow.router.Router.initializeUI(Router.java:93)
at com.vaadin.flow.server.BootstrapHandler.initializeUIWithRouter(BootstrapHandler.java:1532)
at com.vaadin.flow.server.BootstrapHandler.createAndInitUI(BootstrapHandler.java:1525)
at com.vaadin.flow.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:475)
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1547)
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.vaadin.flow.internal.ReflectTools.createProxyInstance(ReflectTools.java:481)
... 56 more
Caused by: elemental.json.JsonException:
at elemental.json.impl.JsonTokenizer.nextString(JsonTokenizer.java:112)
at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:171)
at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231)
at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173)
at elemental.json.impl.JsonTokenizer.parseArray(JsonTokenizer.java:192)
at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:175)
at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231)
at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173)
at elemental.json.impl.JsonTokenizer.parseArray(JsonTokenizer.java:192)
at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:175)
at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231)
at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173)
at elemental.json.impl.JreJsonFactory.parse(JreJsonFactory.java:64)
at elemental.json.Json.parse(Json.java:53)
at com.vaadin.flow.component.polymertemplate.BundleParser.parseJsonStatistics(BundleParser.java:121)
at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.resetCache(NpmTemplateParser.java:249)
at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.getSourcesFromStats(NpmTemplateParser.java:198)
at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.getTemplateContent(NpmTemplateParser.java:111)
at com.vaadin.flow.component.polymertemplate.TemplateDataAnalyzer.parseTemplate(TemplateDataAnalyzer.java:221)
at com.vaadin.flow.component.polymertemplate.TemplateInitializer.lambda$null$23ee5b4f$1(TemplateInitializer.java:89)
at com.vaadin.flow.internal.ReflectionCache.lambda$wrapValueProvider$d0062d93$1(ReflectionCache.java:91)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at com.vaadin.flow.internal.ReflectionCache.get(ReflectionCache.java:108)
at com.vaadin.flow.component.polymertemplate.TemplateInitializer.<init>(TemplateInitializer.java:90)
at com.vaadin.flow.component.polymertemplate.PolymerTemplate.<init>(PolymerTemplate.java:91)
at com.vaadin.flow.component.polymertemplate.PolymerTemplate.<init>(PolymerTemplate.java:106)
It’s hard to say what the problem may be without any code. Something seems to be going wrong in your LoginView
. What does that file look like? How is it created?
Marcus Hellberg:
It’s hard to say what the problem may be without any code. Something seems to be going wrong in yourLoginView
. What does that file look like? How is it created?
login-form.js
import '@polymer/polymer/polymer-legacy.js';
import '@vaadin/vaadin-text-field/src/vaadin-text-field.js';
import '@vaadin/vaadin-text-field/src/vaadin-password-field.js';
import '../../../styles/shared-styles.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
class LoginForm extends PolymerElement {
static get template() {
return html`
<style include="shared-styles">
:host {
background-color: var(--lumo-base-color);
flex:1;
display: flex;
flex-direction: column;
}
form *{
width: 100%;
}
</style>
<div>
<form method="post" autocomplete="on">
<vaadin-text-field id="usernameInput" placeholder="Email" name="email" autocomplete="email"></vaadin-text-field>
<vaadin-password-field id="passInput" placeholder="Password" type="password" name="password" autocomplete="current-password"></vaadin-password-field>
</form>
</div>
`;
}
static get is() {
return 'login-form';
}
static get properties() {
return {
// Declare your properties here.
};
}
}
customElements.define(LoginForm.is, LoginForm);
login-view.js
import '@polymer/polymer/polymer-legacy.js';
import '@vaadin/vaadin-button/src/vaadin-button.js';
import '../../../styles/shared-styles.js';
import '@vaadin/vaadin-icons/vaadin-icons.js';
import './login-buttons-bar.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
class LoginView extends PolymerElement {
static get template() {
return html`
<style include="shared-styles">
:host {
width: 100vw;
height: 100vh;
--app-primary-color: var(--lumo-primary-color);
--app-secondary-color: var(--lumo-body-text-color);
background-color: var(--lumo-shade-5pct);
background-image: url(./images/world-bg.svg);
background-size: cover;
display: flex;
flex-direction: column;
color: var(--lumo-body-text-color);
font-family: var(--lumo-font-family);
justify-content:center;
}
.container {
margin: 0 auto;
box-shadow: 0 2px 5px 0 var(--lumo-shade-10pct);
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
max-height: 90vh;
display: flex;
flex-direction: column;
z-index: 2;
}
.info {
/* background-image: url(../../../images/login-banner.jpg) ; */
/*background-color: var(--lumo-primary-color); */
background-color: var(--lumo-shade-60pct);
background-size: cover;
/*background-position-x: center; */
width: 100%;
display: flex;
justify-content: center;
align-items: center;
background: rgba(255,255,255,1);
background: -moz-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
background: -webkit-gradient(left top, right top, color-stop(0%, rgba(255,255,255,1)), color-stop(0%, rgba(70,131,223,1)), color-stop(51%, rgba(158,197,255,0.97)), color-stop(100%, rgba(70,131,223,0.95)));
background: -webkit-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
background: -o-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
background: -ms-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#4683df', GradientType=1 );
}
.logo {
height: calc(var(--lumo-size-m) * 2) ;
margin: var(--lumo-space-s);
}
.login {
padding: var(--lumo-space-m) var(--lumo-space-l);
padding-top: 0;
background-color: var(--lumo-base-color);
flex: 1;
max-height: 570px;
overflow-y: auto;
display: flex;
flex-direction: column;
}
.login-header {
background-color: var(--lumo-base-color);
flex: 1;
margin-top: 0;
margin-bottom: 0;
margin-left: var(--lumo-space-xs);
}
.login-header h2 {
margin-top: 5px;
margin-bottom: 5px;
font-size: 1.45em;
}
.login__layout {
display: flex;
flex-direction: column;
flex: 1 1 auto;
overflow-y: auto;
padding: 0 var(--lumo-space-xs);
}
.login__layout > * {
width: 100%;
}
user-form{
padding: 6px;
}
.error {
display: flex;
align-items: flex-start;
}
.error__icon {
flex: 0 0 auto;
fill: var(--lumo-error-color);
margin-top: 0.3em;
margin-right: var(--lumo-space-s);
}
.error__text {
max-width: 35em;
margin-top: 0.2em;
}
.success {
display: flex;
align-items: flex-start;
}
.success__icon {
/* flex: 0 0 auto; */
fill: var(--lumo-success-color);
margin-top: 0.3em;
margin-right: var(--lumo-space-s);
}
.success__text {
max-width: 35em;
margin-top: 0.2em;
}
.terms-holder{
font-size: 12px;
padding-top: 6px;
padding-bottom: 26px;
text-align: center;
max-width: 550px;
margin: 0 auto;
}
.footer{
width: 100%;
text-align: center;
position: absolute;
bottom: 0;
left: 0;
font-size: 14px;
padding-bottom: 6px;
}
.footer vaadin-button{
padding: 0;
}
.spacing-vertical{
width: 100%;
height: var(--lumo-space-m);
}
@media (max-height: 450px) {
.login-header {
display: none;
}
}
@media (min-width: 750px) and (min-height: 450px) {
.container {
border-radius: var(--lumo-border-radius);
max-width: 550px;
overflow: hidden;
height: auto;
}
}
@media (min-width: 550px) {
.login__layout {
flex-direction: row;
}
.login__layout > *:not(:first-child) {
margin-left: var(--lumo-space-m);
}
.login__button {
max-width: 7em;
}
}
@media (max-width: 800px) {
.container{
max-width: 90vw;
border-radius: var(--lumo-border-radius);
}
.info{
border-top-left-radius: var(--lumo-border-radius);
border-top-right-radius: var(--lumo-border-radius);
}
.login{
border-bottom-left-radius: var(--lumo-border-radius);
border-bottom-right-radius: var(--lumo-border-radius);
}
.login-header {
flex: 0;
}
}
@media (max-width: 500px) {
.container{
width: 100vw;
height: 100vh;
max-height: 100vh;
max-width: 100vw;
}
.logo {
height: calc(var(--lumo-size-m) * 2.5);
margin: 5%;
}
.login {
padding: var(--lumo-space-s) var(--lumo-space-l);
max-height: 100vh;
}
.login__layout{
flex: unset;
}
.login-header h2{
font-size: var(--lumo-font-size-xxl);
margin-top : var(--lumo-size-m);
margin-bottom : var(--lumo-size-xs);
}
}
@media (max-height: 370px) {
.logo {
max-height: calc(var(--lumo-size-m) * 1);
margin: 1%;
}
}
</style>
<div>
<div class="container">
<div class="info">
<img src="./images/logo-shadow.png" class="logo">
</div>
<div class="login">
<div class="login-header">
<h2 id="title">Log in</h2>
</div>
<div id="content" class="login__layout"></div>
<div class="error" id="errorContent">
<iron-icon icon="vaadin:exclamation-circle-o" class="error__icon"></iron-icon>
<p class="error__text" id="errorText"> Entered username or password invalid. Please double-check and try again. </p>
</div>
<div id="register-success" class="success">
<iron-icon icon="vaadin:check-circle-o" class="success__icon"></iron-icon>
<p class="success__text" id="register-succ-text">Successful registration</p>
</div>
<login-buttons-bar id="buttonBar"></login-buttons-bar>
</div>
</div>
</div>
`;
}
static get is() {
return 'login-view';
}
static get properties() {
return {
// Declare your properties here.
};
}
}
customElements.define(LoginView.is, LoginView);
Overrided method configurePage in LoginView.java
@Override
public void configurePage(InitialPageSettings settings) {
settings.addMetaTag("apple-mobile-web-app-capable", "yes");
settings.addMetaTag("apple-mobile-web-app-status-bar-style", "black");
settings.addFavIcon("icon", "icons/icon.png", "192x192");
settings.addInlineWithContents(
InitialPageSettings.Position.PREPEND, "window.customElements=window.customElements||{};"
+ "window.customElements.forcePolyfill=true; window.ShadyDOM={force:true};",
InitialPageSettings.WrapMode.JAVASCRIPT);
}
Marcus Hellberg:
It’s hard to say what the problem may be without any code. Something seems to be going wrong in yourLoginView
. What does that file look like? How is it created?
Sorry, anything on this?