Deploying on tomcat problem

Hi to all,

i’m new to Vaadin framework. I’m using spring boot, maven, vaadin and jpa. Starting the app with embedded server works just fine. Deploying it on a tomcat causes an error. I attached VaadinUI file where are my navigator settings. Btw. app works on tomcat also without navigator. You can see error in catalina.out file. Does someone has an idea what i’m doing wrong?

Thanks

28610.java (2.4 KB)

and catalina.out file
28612.txt (7.95 KB)

You just need to add an empty constructor, as the exception message says, and a super() call should be placed as well (in both constructors).

public VaadinUI()
{
super();
}

That was the frist thing i tried and i got

12:29:36,204 SEVERE [com.vaadin.server.DefaultErrorHandler]
 (default task-12) : com.vaadin.event.ListenerMethod$MethodException: Invocation of method uriFragmentChanged in com.vaadin.navigator.Navigator$UriFragmentManager failed.

    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:528)

    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)

    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)

    at com.vaadin.server.Page.fireEvent(Page.java:603)

    at com.vaadin.server.Page.setUriFragment(Page.java:596)

    at com.vaadin.server.Page.setUriFragment(Page.java:616)

    at at.e.screen.hello.gui.LoginPage$1.buttonClick(LoginPage.java:44)

    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.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)

    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)

    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)

    at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1008)

    at com.vaadin.ui.Button.fireClick(Button.java:377)

    at com.vaadin.ui.Button$1.click(Button.java:54)

    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.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)

    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)

    at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:408)

    at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)

    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:79)

    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)

    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1409)

    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:364)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)

    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)

    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

    at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)

    at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:61)

    at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:94)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:112)

    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)

    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)

    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)

    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)

    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)

    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)

    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)

    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285)

    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264)

    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)

    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175)

    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)

    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NullPointerException

    at at.e.screen.hello.gui.SecurePage.listCustomers(SecurePage.java:83)

    at at.e.screen.hello.gui.SecurePage.<init>(SecurePage.java:54)

    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 java.lang.Class.newInstance(Class.java:442)

    at com.vaadin.navigator.Navigator$ClassBasedViewProvider.getView(Navigator.java:340)

    at com.vaadin.navigator.Navigator.navigateTo(Navigator.java:559)

    at com.vaadin.navigator.Navigator$UriFragmentManager.uriFragmentChanged(Navigator.java:145)

    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.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)

    ... 81 more

You should fix nullpointer access in your code:

Caused by: java.lang.NullPointerException

at at.e.screen.hello.gui.SecurePage.listCustomers(SecurePage.java:83)

NullPointerExeption is coused by empty jpa repository(LocationRepository) which is in this case not autowired.

[code]
@Autowired

    public VaadinUI(LocationRepository repo) {

        super();

        this.locationRepository = repo;

    }

[/code]Non-arg constructor is initialized

[code]
public VaadinUI(){

        super();

    }

[/code]Is there another way to wire jpa repositories with vaadinUI?
i followed this tutorial
https://spring.io/guides/gs/crud-with-vaadin/

Thanks

so what happens if you autowire LocationRepository directly?

@Autowired
public LocationRepository locationRepository;

you also should avoid the static modifier in your variables, which typically leads to problems here…

public static Customer AUTH;
public static LocationRepository locationRepository;

Try making your servlet extend SpringVaadinServlet instead of VaadinServlet; BTW if you are using vaadin spring boot starter i think you don’t need to extend the servlet.

HTH
Marco

Thanks Marco, extending a SpringVaadinServlet solved the problem.
Thanks a lot