sample

I try to use the sample from

https://vaadin.com/tutorials/migrating-java-swing-to-web-with-vaadin

the link to GitHub is not working. How can I use the code parts from the tutorial?

Is https://github.com/vaadin-learning-center/vaadin-platform-for-swing-developers/ what you’re looking for?

yes

I’ve tried with intellij and with netbeans. There is an error message when opening http://localhost:8080/server-1.0-SNAPSHOT/
ClassNotFoundException: javax.rmi.PortableRemoteObject

netbeans:
[http-nio-8080-exec-2]
INFO com.vaadin.cdi.CdiInstantiator - Can’t find any bean implementing ‘I18NProvider’. Cannot use CDI beans for I18N, falling back to the default behavior.
08-Oct-2019 20:44:58.727 INFORMATION [http-nio-8080-exec-2]
org.apache.openejb.client.EventLogger.log RemoteInitialContextCreated{providerUri=http://127.0.0.1:8080/tomee/ejb}
[http-nio-8080-exec-2]
ERROR com.vaadin.flow.router.InternalServerError - There was an exception while trying to navigate to ‘’
javax.enterprise.inject.CreationException: java.lang.ClassNotFoundException: javax.rmi.PortableRemoteObject
at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:141)
at org.apache.webbeans.component.ManagedBean.create(ManagedBean.java:66)
at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:68)
at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:125)
at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:813)
at org.apache.webbeans.container.InjectableBeanManager.getReference(InjectableBeanManager.java:180)
at com.vaadin.cdi.BeanLookup.lookupOrElseGet(BeanLookup.java:100)
at com.vaadin.cdi.CdiInstantiator.getOrCreate(CdiInstantiator.java:76)
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:158)
at com.vaadin.cdi.CdiInstantiator$$OwbNormalScopeProxy0.createRouteTarget(com/vaadin/cdi/CdiInstantiator.java)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:121)
at java.base/java.util.Optional.orElseGet(Optional.java:358)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:120)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:178)
at com.vaadin.flow.router.Router.handleNavigation(Router.java:219)
at com.vaadin.flow.router.Router.navigate(Router.java:190)
at com.vaadin.flow.router.Router.initializeUI(Router.java:92)
at com.vaadin.flow.server.BootstrapHandler.createAndInitUI(BootstrapHandler.java:1117)
at com.vaadin.flow.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:396)
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1507)
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:242)
at com.vaadin.cdi.CdiVaadinServlet.service(CdiVaadinServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
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:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65)
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:96)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.ClassNotFoundException: javax.rmi.PortableRemoteObject
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
at org.apache.tomee.catalina.TomEEWebappClassLoader.loadClass(TomEEWebappClassLoader.java:208)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1138)
at org.vaadin.vaadinui.layout.VaadinApplication.getCustomerFacade(VaadinApplication.java:103)
at org.vaadin.vaadinui.layout.VaadinApplication.refreshData(VaadinApplication.java:91)
at org.vaadin.vaadinui.layout.VaadinApplication.createUI(VaadinApplication.java:86)
at org.vaadin.vaadinui.layout.VaadinApplication.(VaadinApplication.java:55)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableConstructor.java:72)
at org.apache.webbeans.portable.InjectionTargetImpl.newInstance(InjectionTargetImpl.java:197)
at org.apache.webbeans.portable.InjectionTargetImpl.produce(InjectionTargetImpl.java:180)
at org.apache.webbeans.portable.AbstractProducer.produce(AbstractProducer.java:134)
at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:122)
… 50 more

intellij
There was an exception while trying to navigate to ‘’ with the exception message ‘java.lang.NoClassDefFoundError: javax/rmi/PortableRemoteObject’

javax.enterprise.inject.CreationException: java.lang.NoClassDefFoundError: javax/rmi/PortableRemoteObject
at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:141)
at org.apache.webbeans.component.ManagedBean.create(ManagedBean.java:66)
at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:68)
at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:125)
at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:813)
at org.apache.webbeans.container.InjectableBeanManager.getReference(InjectableBeanManager.java:180)
at com.vaadin.cdi.BeanLookup.lookupOrElseGet(BeanLookup.java:100)
at com.vaadin.cdi.CdiInstantiator.getOrCreate(CdiInstantiator.java:76)
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:158)
at com.vaadin.cdi.CdiInstantiator$$OwbNormalScopeProxy0.createRouteTarget(com/vaadin/cdi/CdiInstantiator.java)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:121)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:120)
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:178)
at com.vaadin.flow.router.Router.handleNavigation(Router.java:219)
at com.vaadin.flow.router.Router.navigate(Router.java:190)
at com.vaadin.flow.router.Router.initializeUI(Router.java:92)
at com.vaadin.flow.server.BootstrapHandler.createAndInitUI(BootstrapHandler.java:1117)
at com.vaadin.flow.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:396)
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1507)
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:242)
at com.vaadin.cdi.CdiVaadinServlet.service(CdiVaadinServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
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:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65)
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:96)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NoClassDefFoundError: javax/rmi/PortableRemoteObject
at org.vaadin.vaadinui.layout.VaadinApplication.getCustomerFacade(VaadinApplication.java:103)
at org.vaadin.vaadinui.layout.VaadinApplication.refreshData(VaadinApplication.java:91)
at org.vaadin.vaadinui.layout.VaadinApplication.createUI(VaadinApplication.java:86)
at org.vaadin.vaadinui.layout.VaadinApplication.(VaadinApplication.java:55)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableConstructor.java:72)
at org.apache.webbeans.portable.InjectionTargetImpl.newInstance(InjectionTargetImpl.java:197)
at org.apache.webbeans.portable.InjectionTargetImpl.produce(InjectionTargetImpl.java:180)
at org.apache.webbeans.portable.AbstractProducer.produce(AbstractProducer.java:134)
at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:122)
… 50 more

Seems to work ok for me. Did you follow the steps in README.md? The error message seems to point at some JEE configuration issue.

yes, in the README.md the steps are

  • build from top level with mvn install
    
  • import the project to your IDE and make one top level build
    
  • start the server module with mvn tomee:run from the module root or by deploying the server module manually to TomEE server configured in you IDE.
    
  • Web UI is then available at http://localhost:8080/server-1.0-SNAPSHOT/
    
  • The Swing UI can be launched directly from IDE by executing main method from SwingApplication class in desktop module. Note: the server needs to be running.
    

could you note which IDE you are using and where you clicked for this 5 steps?

I’m using IntelliJ Idea. For the first steps, I used the Maven menu from the right hand side and for the last one, I used right click → “Run ‘SwingApplication.main’” on the left hand Project tree’s SwingApplication class.

with IntelliJ in the first step I get a warning:

[INFO]
— maven-war-plugin:2.2:war (default-war) @ server —
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/home/ich/.m2/repository/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar) to field java.util.Properties.defaults
WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

and what is the difference between the first two steps?

You should be able to run the Vaadin app without any IDE altogether; just run the Maven commands from command line (eg. mvn install in the root directory and mvn tomee:run in the server directory). What happens when you try that?

I’ve no mvn command in the path. With a separately installed mvn or the mvn-path from the IDE?

As long as the Maven version is 3.6.0 or greater, it doesn’t matter where it’s coming from.

I installed a fresh maven 3.6.2. and used the command line
When I do the mvn install at the top level there is the same warning as above.
When I do the mvn tomee:run at the server modul level there is again the error:
09-Oct-2019 14:15:42.916 INFORMATION [http-nio-8080-exec-4]
org.apache.openejb.client.EventLogger.log RemoteInitialContextCreated{providerUri=http://127.0.0.1:8080/tomee/ejb}
[http-nio-8080-exec-4]
ERROR com.vaadin.flow.router.InternalServerError - There was an exception while trying to navigate to ‘’
javax.enterprise.inject.CreationException: java.lang.ClassNotFoundException: javax.rmi.PortableRemoteObject

Which Java version are you using?

I’m on OpenSuse 15.0 with the provided OpenJDK 10.

Can you try with Oracle JDK 8 instead?