Packaging scala backend with Next.js front end? - scala

I have a desktop application that has a scala backend (using sbt) and a Next.js webapp. I would like to package this into a single executable that a user can download and then can be accessed through the user's browser.
Is there any easy way to do this. I have found some outdated libraries but nothing concrete.

Related

I get "Can't find any GWT Modules on this page"

I am trying to set up my eclipse with gwt and after I installed Jdk 8 and eclipse 2019-06 and gwt eclipse plugin 3.0 I created the sample project with code generated and when I try to run the sample code in GWT Development mode it gives me url http://localhost:9876 and when I open it I get "Can't find any GWT Modules on this page" Can you please help why It is giving me Can't find any GWT Modules on this page. I am assuming if I am running it in development mode I don't need to set up web server so I didn't. I didn't used gwt for long time and I am lost why it is giving me this can't find gwt module message when I load the page. Can you please help?
You still need a server, if you want to run any java code on your server. Such as code for talking to your database.
Gwt only does 2 things:
1: is is handling the client side, where it generate javascript from your java code.
2: It includes a .jar file, which can be used together with a java servlet server such as apache tomcat to serialize java objects which can then be send between the client and the server. And this .jar file will serialize all needed objects. And gwt will generate the needed javascript code.
Gwt does not itself include any http server. The address http://localhost:9876 is only used to configure gwt. It is just a page with 2 buttons to turn dev mode on/off.
The eclipse plugin does include a embeded webserver which can be used for gwt development. I have newer done this and I think that installing an independent java tomcat server is the best solution.
But if you want to use the eclipse embeded webserver you need the "Run in development mode with Jetty." - Jetty is the name of the embeded java servlet server.
Are you using the plugin from Google ?
If so, this is outdated. I advice you to use the plugin from branflake. You can find this plugin on GitHub : https://github.com/gwt-plugins/gwt-eclipse-plugin
Also on that GitHub page a lot of documentation is available. Like a link to a very helpfull YouTube playlist: https://www.youtube.com/watch?v=DU7ZQVLR5Zo&list=PLBbgqtDgdc_TqzA-qXrjgTFMC_6DKAQyT
My advice is to watch these YouTube videos to get you started. If you follow them all should be working without a problem.
I haven't used this plugin for a while since I switched to IntelliJ. But I did use it in GWT2.8.2 so it should still work fine.

How to deploy a Scala Play framework API using the SBT native packager

I created a web API based on the Scala Play framework 2. In the past I generated war files using a SBT plugin in order to deploy in production using Tomcat. It is now possible to build native package from Play project using the SBT native packager plugin. I used it to generate a debian package from my web app.
However, I don't understand how it works. I could generate and install the debian package and start the daemon, but my API seems not listening request.
In the first case, Tomcat hosts the war file which contains the Play app and manages the HTTP connection. I have the feeling that there are missing parts in my debian package in order to work properly like the war file under Tomcat.
The question is, how can I use the native packager plugin to deploy a standalone HTTP API? What is responsible to handle HTTP connection? What is missing in my project?
Thanks in advance
Play applications run using their own light weight http server.
To build a standalone project issue
sbt dist
or if your using activator
activator dist
This makes a directory target/universal/your-app.zip
If you unzip the contents you will find a standalone application structure
/bin
/lib
/conf
/share
under which you can find shellscripts that launch the server
bin/your-app
bin/your-app.bat (windows)
The distribution to a war file appears to have been removed from play. Similar question asked here:
Deploy play as a war file into a servlet container, even if it uses JPA heavily?

make a standalone independent application out of a dynamic web project in eclipse

So, I've made a dynamic web project in Eclipse.It uses Jsp and servlets. Now I am told to make a standalone independent application for the same. I tried to google as to how it can be done. Most of them pointed me to use Export->Runnable jar file. But on doing so I can't find my dynamic web project in the Launch Configuration. Now how to make the standalone independent application ?
I've done a similar thing using embedded Jetty which means the application jar provides the web service without having to rely on a web server.

Import alfresco project into eclipse

I'm new in Alfresco I have download and installed "alfresco-community-4.2.f-installer-win-x64.exe" and I'm looking if I can import it as an eclipse project
The Alfresco Installer provides everything you need to run Alfresco. Install it, start it, away you go
However, if you want to either write your own Java code to run on Alfresco, or to extend/change Alfresco, it isn't what you need.
To build your own code on top of Alfresco, you'll most likely want the Alfresco SDK. That contains everything you need to:
Develop Alfresco Repository plug-ins such as:
Custom Actions / Conditions
Custom Aspects
Custom Transformers
Develop Applications against a standalone Alfresco server via Alfresco's Web Service API. In this case, the SDK works as a wrapper for the Alfresco API.
Embed Alfresco into existing Applications via Alfresco's Java Foundation API or standards-compliant JCR API
Alternately, if you want to make changes to Alfresco itself, then you'll need to grab the source code for it. The Source Code Wiki Page has the details of how to do that, and the 4.2f code is here
if you are using Maven you can try with Maven Alfresco SDK

GWT/Grails Project Structure

Does somebody already have some experience embedding gwt in other
client pages except the standard html file?
I want to use gwt as front end and grails as backend. Communication
should be handled over rest json interface so that is loosely coupled.
How do i structure my project at best? Should I create 2 independend
projects or should I stick them together?
At the beginning I had some problems with debugging my gwt application
as it was part of the grails project. Now I copied the compiled js
script to my webapp folder and included it in a grails page. Debugging
gwt in noserver mode worked ok. The problem is , how do I solve my
deployment later at best as I dont want to copy my js everytime by
hand? Already tried the grails gwt plugin but its difficult to debug the gwt application and I even do not want to use the service stuff provided with the plugin.
I thought its a good idea to have 2 maven modules on for grails and one for gwt. Later 2 war files(one grails, one gwt) will deployed on Tomcat, so I also can change gwt client stuff without deploying grails again. How do i manage the brige from grails to gwt best? Just call the standard html in a div from grails page?
I am using maven for building my project.
Thanks for all your help
I have written 2 posts about this topic. In the first one I show Grails+GWT in the same application, using the Grails Gwt Plugin. It appears you already tried that approach. In the second post, I show how to do it with 2 seperate applications, talking JSON between each other using RequestBuilder to request the grails app (that serves JSON responses).
For The deployment in production, you should have Maven doing this job for you.