Apache Camel Routes on Pivotal Cloud Foundry - apache-camel

We have few scheduled jobs implemented via apache camel routes & qaurtz scheduler. We are migrating our application to pivotal cloud foundry. Does Pivotal cloud foundry support apache camel routes?

Why not? They run in a java container. See my example running in spring boot with a cloud foundry manifest: https://github.com/amaline/camel-example.git

Cloud Foundry (CF) supports deployment of applications through so called build packs for different technologies. For example, if your application is running on JVM, you need to deploy it to CF with corresponding Java Build Pack.
One common way to deploy Camel routes to CF is to package Camel routes as Spring Boot Java apps and then deploy them to CF using Java build pack.

Related

Deploy CXF jax-ws webservice on Websphere 8.5.5.12

I am trying to deploy a jax-ws webservice on Websphere 8.5.5.12. I am using CXF as my jax-ws engine. I have gone through the prerequisites and changed the class loader as well as desabled the JaxWs engine in websphere. I have set the property to disable Jax-WS engine in the manifest file of my war file.
My application is a Spring boot application. I am also using apache camel 2.20.1 and using the cxf end point to consume the messages.
As a spring boot application my application is working fine.
When I deploy on Websphere my application starts without any issues. But when it intercepts any incoming requests, it throws class not found exception for javax.servlet.WriteListener class. This class is part of the servlet api. It should have been part of the Websphere j2ee library.
Need to know what I did wrong. I don't want to take the shared library route. I have been suggested, that I need to move all my cxf dependencies, into a shared library and set my class loader for this library. I am not comfortable with this solution.
javax.servlet.WriteListener is a Servlet 3.1 / Java EE7 API.
WebSphere Application Server 8.5.5 implements Servlet 3.0 / Java EE6.
You should use either WebSphere Application Server 9.0.0.x or any recent WebSphere Liberty release (which has been versioned differently for quite some time).
(or, remove the 3.1 dependencies from your app if you must run it on WebSphere Application Server 8.5.5)

Deploy a spring boot rest application with google cloud

I trying so much to deploy a spring boot application on google cloud app engine, after so many documents here im.
when i try to deploy a simple spring boot application like the exemples its works but with my app the deploy process take a long time and i got 502 error. looking at app engine logs my application keep on infinit reboot loop.
my app.yaml :
runtime: custom
env: flex
My docker file:
FROM gcr.io/google_appengine/openjdk
VOLUME /tmp
ADD vaptuber-jjaerp-0.0.1-SNAPSHOT.jar app.jar
CMD [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
and here is the app log:
https://drive.google.com/file/d/0B1gG3dVgi0WoTzM2RXlaQjJka0E/view?usp=sharing
I has deployed a fat jar to test, in local machine works fine.
Spring Cloud GCP was just recently announced. It should help to better integrate your Spring application with GCP. Take a look at the following resources.
Announcing Spring Cloud GCP
Spring Cloud GCP
It sounds like your application is running out of memory and being killed and restarted by the OOM Killer. The solution is as simple as increasing the memory on the App Engine VM. See my answer here:
Deploy a SpringBoot / Angular 4 on Google App Engine with maven

Deploy Angularjs 1.5.X on JBoss App server

Can Angularjs 1.5.X App directly deployed onto application server like JBoss 6.x. I have deployed Angularjs apps on Nginx, but I was wondering if AngularJS can be deployed to listen on different port on Same App server that also host the Rest API's developed using RestEasy on JBoss.
Does JBoss has ability to run Webapps?
JBoss Application Server (AS) was a product developed by RedHat, currently replaced by Wildfly, which, being a certified implementation of the Java Enterprise Edition specification, allowed the building, deploying, and hosting of highly-transactional Java applications and services.
Therefore, the answer to your question is yes. JBoss AS, as it name states, has the ability to serve web applications.
To deploy your AngularJS application on JBoss, I'd suggest you to create a web project and have it builded and packaged as a ready-to-deploy WAR archive using a build manager such as Maven.
As an example, you can follow the kitchensink-angularjs quickstart provided by JBoss.
Finally, regarding your AngularJS deployed on a different port question, you can find an answer to it in How to run different apps on single JBoss AS 6 instance behind different ports?.

Deploy existing Java web application on Google App engine or Amazon AWS

We have a Java web application developed locally without using any GAE components / AWS components (GAE/AWS SDK etc.,).
We used the following technologies: Java, Spring framework, MySQL Database, Hibernate ORM, Jersy REST library, Tomcat web server.
Our application is up & running fine on our local server.
Now my question is
If I deploy the existing WAR to Google App Engine/ Amazon AWS will it start working right away OR Do I have to make extra changes to my code and deploy new WAR file in order to make it working on Google App Engine / Amazon AWS?
If I want to start a new java web project(using same configuration I mentioned above) that will eventually run on Google App Engine / Amazon AWS, What is the best strategy:
Should I start my development using Google App Engine / Amazon AWS from the beginning ? or just deploy when everything is done?
EDIT : I just wanted to know about GAE and/or AWS in general.
It looks like Google Computer Engine is more suited if you rely on a relational database. Google app engine uses a NoSQL datastore that is not compatible with your relational scheme.

How to deploy GWT GAE applications on external server

I Have an GWT+GAE application with nosql database that runs fine in Google App Engine and in eclipse + gwt plugin with embedded jetty server on development environment.
Now in production environment, for many causes, i have to deploy this application on an external self managed server like Tomcat or JBoss.
I follow with no luck many tutorials and tips&tricks like:
https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#How_do_I_use_my_own_server_in_development_mode_instead_of_GWT%27s
https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/LYySmvqdbO8
or Link1 Link2 Link3 Link4 Link5
When I deploy my application on an external server (i.e. tomcat or jetty) it starts correctly but when I do a call that uses database connection it gives this error:
Caused by: java.lang.NullPointerException: No API environment is registered for this thread.
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:86)
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:96)
at com.google.appengine.api.datastore.Query.<init>(Query.java:171)
at com.google.appengine.api.datastore.Query.<init>(Query.java:102)
at com.googlecode.objectify.impl.QueryImpl.<init>(QueryImpl.java:69)
at com.googlecode.objectify.impl.AsyncObjectifyImpl.query(AsyncObjectifyImpl.java:354)
at com.googlecode.objectify.impl.ObjectifyImpl.query(ObjectifyImpl.java:207)
at com.beoui.geocell.ObjectifyGeocellQueryEngine.query(ObjectifyGeocellQueryEngine.java:52)
at com.beoui.geocell.GeocellManager.proximitySearch(GeocellManager.java:381)
How can I deploy to external servers like Tomcat, JBOSS or Jetty?
Or it isn't possible at all?
My opinion is: whether the application runs correctly on eclipse embedded jetty, in some way is possible to configure an external jetty distribution to run the application
GAE comes with a set of services which are basically big external systems hidden behind an API. Local dev server is just a Jetty with an embedded database and an API layer mimicking the production GAE. You can not use the dev server for production purposes - it was not made for this and has no concurrency and reliability features of production system.
If you want to run GAE code somewhere else then production GAE service, take a look at AppScale or CapeDwarf.
Also, most links that you provided deal with running GWT app on Tomcat/Jetty, but you have problems with AppEngine. GWT and AppEngine are two separate technologies (which can work together, but it's not required).

Resources