Tuesday, November 7, 2017

Re: GWT Maven Plugin (tbroyer) on windows in combination with Jetty

Thanks Thomas: the first example works! 

Maybe you should include it in your maven archetypes ? (Or maybe that is already the case - I don't have access to the latest versions from my dev env)

On Tuesday, November 7, 2017 at 11:29:08 AM UTC+1, Thomas Broyer wrote:
See https://www.eclipse.org/jetty/documentation/9.4.x/troubleshooting-locked-files-on-windows.html
In DevMode, we're setting the (undocumented afaict) webappcontext's init-param (https://github.com/gwtproject/gwt/blob/2.8.2/dev/core/src/com/google/gwt/dev/shell/jetty/JettyLauncher.java#L539-L541) which I believe you can do with the jetty-maven-plugin using a custom contextXml (see https://www.eclipse.org/jetty/documentation/9.4.x/jetty-maven-plugin.html#configuring-your-webapp) with content:
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Call name="setInitParameter">
    <Arg>org.eclipse.jetty.servlet.Default.useFileMappedBuffer</Arg>
    <Arg>false</Arg>
  </Call>
</Configure>

or
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Get name="servletContext">
    <Call name="setInitParameter">
      <Arg>org.eclipse.jetty.servlet.Default.useFileMappedBuffer</Arg>
      <Arg>false</Arg>
    </Call>
  </Get>
</Configure>


On Tuesday, November 7, 2017 at 10:01:54 AM UTC+1, DavidN wrote:
I have my project configured to launch SDM and Jetty from Maven.
Whenever I make changes to the UI code and reload the browser window I get an error from SDM:


[INFO] GET /recompile/multitenantapp

[INFO]    Job com.swift.cloud.platform.ui.multitenant.MultitenantApp_1_2

[INFO]       starting job: com.swift.cloud.platform.ui.multitenant.MultitenantApp_1_2

[INFO]       Compiling module com.swift.cloud.platform.ui.multitenant.MultitenantApp

[INFO]          Unification traversed 5002 fields and methods and 1608 types. 30 are considered part of the current module and 376 had all of their fields and methods traversed.

[INFO]          Compiling 1 permutation

[INFO]             Compiling permutation 0...

[INFO]             Linking per-type JS with 30 new/changed types.

[INFO]             Source Maps Enabled

[INFO]          Compile of permutations succeeded

[INFO]          Compilation succeeded -- 4.255s

[INFO]       Linking into C:\Development\git-repos\liteevolutiontfr\platform\main\ui\target\gwt\codeserver\com.swift.cloud.platform.ui.multitenant.MultitenantApp\compile-4\war\multitenantapp; Writing extras to C:\Development\git-repos\liteevolutiontfr\platform\main\ui\target\gwt\codeserver\com.swift.cloud.platform.ui.multitenant.MultitenantApp\compile-4\extras\multitenantapp

[INFO]          Link succeeded

[INFO]          Linking succeeded -- 0.421s

[INFO]       [ERROR] Can't update launcher dir

[INFO] java.io.FileNotFoundException: C:\Development\git-repos\liteevolutiontfr\platform\main\ui\target\gwt\launcherDir\multitenantapp\multitenantapp.nocache.js (The requested operation cannot be performed on a file with a user-mapped section open)

[INFO]  at java.io.FileOutputStream.open0(Native Method)

[INFO]  at java.io.FileOutputStream.open(FileOutputStream.java:270)

[INFO]  at java.io.FileOutputStream.<init>(FileOutputStream.java:213)

[INFO]  at com.google.gwt.thirdparty.guava.common.io.Files$FileByteSink.openStream(Files.java:210)

[INFO]  at com.google.gwt.thirdparty.guava.common.io.Files$FileByteSink.openStream(Files.java:198)

[INFO]  at com.google.gwt.thirdparty.guava.common.io.ByteSink$AsCharSink.openStream(ByteSink.java:148)

[INFO]  at com.google.gwt.thirdparty.guava.common.io.CharSink.write(CharSink.java:95)

[INFO]  at com.google.gwt.thirdparty.guava.common.io.Files.write(Files.java:330)

[INFO]  at com.google.gwt.dev.codeserver.LauncherDir.update(LauncherDir.java:74)

[INFO]  at com.google.gwt.dev.codeserver.Recompiler.doCompile(Recompiler.java:374)

[INFO]  at com.google.gwt.dev.codeserver.Recompiler.compile(Recompiler.java:175)

[INFO]  at com.google.gwt.dev.codeserver.Recompiler.recompile(Recompiler.java:134)

[INFO]  at com.google.gwt.dev.codeserver.Outbox.recompile(Outbox.java:135)

[INFO]  at com.google.gwt.dev.codeserver.JobRunner.recompile(JobRunner.java:113)

[INFO]  at com.google.gwt.dev.codeserver.JobRunner.access$000(JobRunner.java:37)

[INFO]  at com.google.gwt.dev.codeserver.JobRunner$2.run(JobRunner.java:90)

[INFO]  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

[INFO]  at java.util.concurrent.FutureTask.run(FutureTask.java:266)

[INFO]  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

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

[INFO]  at java.lang.Thread.run(Thread.java:745)

[INFO]       [WARN] recompile failed

[INFO]       [WARN] continuing to serve previous version


When I reload a second time in my browser Super Dev does not need to recompile anything and then suddenly it works. So it looks like it is not really an error ...


Any idea how I can get rid of this problem ? I can't switch to Tomcat because after all these years the tomcat maven plugin is still limited to Tomcat 7 and I need 8 at least since I am using async servlets/jaxrs services.


Also note that I get the same error (but this time SDM refuses to start) when I start Jetty before SDM.


--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment