URL for accessing different versions of a web application on tomcat? - java

I have a web application configured as /myApp
Every time I push a new release, I am planning to deploy a new application version by renaming the war file a myApp##002 which results in /myApp##0002
The URL on my client: http://mywebsite.edu/myApp points to the latest version of my web application. Sometimes if the release contains some major bugs that impact only a part of our users we want the ability to direct them to the previous version of our website.
Now, I have created another version of my client that I want to point to the previous version of the web application instead but I am not sure how to do that. Can someone please shed some light on this? Thanks.

Related

How to get started on Google App Engine for current GlassFish solution

I'm currently running my Java application on a GlassFish server on AWS-EB.
Since our front-end is already running on the Google Cloud Platform, I would like to migrate my back-end to GCP as well.
I tried the Jelastic interface but I was not happy with the speed results.
Now I'm looking to deploy my application on the App Engine but when I deploy my current .war file, I get the following error:
Error 404 - Not Found.
No context on this server matched or handled this request.
Contexts known to this server are:
/ ---> o.e.j.w.WebAppContext#7e0b0338{/,file:///var/lib/jetty/webapps/root/,UNAVAILABLE}{/root.war} [failed]
I guess I'm missing something, since GCP is using Jetty as a server.
I'm a bit lost and I hope you guys can point me in the right direction to make this migration successful.
It's suggested here that Jetty requires two configuration files (web.xml and applicationContext.xml).
As well as this, the original poster in the issue above stated that they solved their issue in this GitHub post by rebuilding their project before deploying.

How to load application specific jar files in the Glassfish server 4.1

Currently i am working on one application related to document search using lucene. On my Local System the application is running properly. But When i tried to integrate the application with the organization web application the application is not running.
The problem is that organization web application is old one and is using the old libraries "Xerces" and it's getting the conflict and if replace the old "Xerces" libraries with new one "Xerces" the application is not starting since some of the modules are using old one.
Now i think is there some way through which i can create one more application with it's set of libraries in glassfish server so that both the application runs without conflict within the domain1.
Also if there is any better way please suggest me how to proceed

How to use Eclipse for Spring REST development with Brackets like editor for JavaScript/front end development?

We have two separate web projects for our application
One for Spring REST services
Other for AngularJS, the front end of the application.
We have been using eclipse for development of both and also for running those locally on tomcat server.
It is a great deal of pain to view updates to JavaScript and CSS part of the second project from eclipse, because it requires restart or publish of the tomcat server every time which takes a long time.
So I wanted to use eclipse for development of REST and front-end development editor like Brackets for development of AngularJS/JavaScript and CSS. But then they run on different ports causing Cross Site requests errors, and I don't want to write any CORS filter like this for this purpose.
Is there any better way to get these tools work together ?
Spring Tool Suite (STS) uses the pivotal tc server will automatically deploy resources without redeploying the application. Download it and give it a go, STS is just eclipse anyway with different branding. Maybe you can just download it, copy the pivotal server folder to your eclipse folder and add it to your servers view in your eclipse version. One thing I have noticed is that the application must be running under a context for this to work, deploying to root does not automatically deploy resources for some reason (at least this was the case when I was using the previous vfabric server about a year ago).

How do I deploy multiple Java projects to the same Azure cloud service and storage account?

I am just beginning to learn Azure, so I expect this will seem an elementary question. Using Eclipse (and the Windows Azure Plugin with Java) I began by writing a basic JSP (html) file that simply displays some text in the browser.
Deployment of the first project went fine. It ran as intended in the storage and compute emulators, deployed fine into the new cloud service and storage account I added to Azure, works fine in staging and then production. I deployed the JDK and application server in the package.
I created a second project in Eclipse, same as the first, except that the project and application names are different. This package also includes the JDK and application server. Works fine in the emulator, but when I try to deploy to the existing Azure cloud service and storage account, it fails.
…
Uploading deployment package - 100% Completed
02/22/2013 12:29:45 - Creating deployment
02/22/2013 12:29:47 - Failed : HTTP error code : 409 Conflict
Is it not possible to deploy multiple projects to the same cloud service and storage account?
The first application is still running in the cloud.
thanks
ANSWER SUMMARY
Martin's answer resolved this issue for me. Although Eclipse did not display a message when I tried to publish to an existing cloud service, I was able to unpublish the existing cloud service and then publish to staging and then production as expected.
I do not think so, when you publish the second project to the same cloud service, Eclipse will ask you to unpublish your first one.
If you're publishing a newer version of the same service, then just click the Unpublish button on the toolbar (next to the Publish one) to remove your previous deployment first.
If you're intentionally publishing a whole different application that is supposed exist in addition to the one you already published, then you need to create a new service for it in the publish dialog, rather than selecting the same service again (which happens by default).
And if you're just adding another WAR to the same container installation (Tomcat and or what not), then do that in the Eclipse Azure project, and then republish - that is equivalent to publishing the same deployment in the same service (so you need to unpublish the previous one).

How to automatically upgrade a Java application during its startup?

I have a Java 1.6 application deployed on several machines (~ 30), and started as a Windows service.
My main problem concerns the maintenance of these deployed artifacts: if I develop a new version of this application, I don't want to manually redeploy it on every machine.
Ideally, when the Windows service is starting, it checks on a remote server if an update exists, and if it is found, then it upgrades the application.
Note that it is acceptable that after this upgrade the service requires to be restarted again.
This mechanism can be compared to the Maven snapshot verification: if there is a newer version of a SNAPSHOT version on a remote repository, then Maven download it before running it.
Note that the application itself will be deployed on a Maven repository (in our case Nexus), so the check for an update will be done against this Nexus instance.
What are my technical solutions to implement such an automatically application update?
Do not hesitate to ask me more details about technical information or about the context...
Thanks.
Edit: As stated by Peter Lawrey, I can use Java Web Start. However, how can I integrate JWS within a Java application that is run as a Windows service?
I would look at Java Web Start
A common technique for this is to use a launcher. The steps are something like this:
Start the launcher.
The launcher checks to see if the application should be updated. If yes, the launcher updates the application (I think of this as "the update step").
After the update step, the launcher runs the application.

Categories