Spring Data / REST - never any contents exposed when hosted on Cloud Foundry - cloud-foundry

I've got a very basic survey app :
one JPA entity (Survey.java)
one Spring MVC controller (SurveyController.java)
one Spring Data/JPA repository (SurveyRepository.java)
3 main steps, each matching a specific Validation Group
a REST API exposed through Spring Data/REST configuration (see ApiConfiguration.java)
You can see it live here: http://survey-preprod.cloudfoundry.com/.
The sources are available here: https://github.com/fbiville/spring-example-survey.
Just properly fill the form (3 steps - just answer anything) till you see the "Thanks!" page.
Then proceed: http://survey-preprod.cloudfoundry.com/api/survey and notice there is no contents at all!
This happened will all Spring Data / REST I pushed to Cloud Foundry.
When run locally, there isn't any problems at all.
Is there something I missed?
Thanks in advance,
Rolf
EDIT: even with
curl -v -H "Accept: application/json" -X GET http://survey-preprod.cloudfoundry.com/api/survey
(so the accept header is properly set), no contents are exposed...

Well guys, as (sadly) often, this is a clear PEBKAC instance.
ApiConfiguration was importing CoreConfiguration (which was already loaded once as defined by web.xml).
Therefore, the same "core" beans were loaded again, but CloudFoundry auto-reconfiguration occurred only the first time on the declared datasource and let the duplicated one as is (that is: an H2 database, of course without any contents).

Related

Difficulty with gcloud run service - migrating to espV2

Ive been following the documentation (https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-run#configure_esp)
I am able to load an image (Hello example), create endpoints, and run it as a service.....however, whenever I follow the process to migrate the working services to ESPv2, I get the following:
{"message":"upstream request timeout","code":504}
I've tried this on two different services. Any thoughts/ideas?
Thanks,
Steve
I have solved this issue. I was not aware that ESPv2 is only a proxy that needs to co-exist and point to the original backend service.
As soon as I created a separate service, everything worked.

Deploying Web job with appropriate environments variable

We are trying to deploy a web job via octopus. We have different eventhub keys saved in the variables and we expect the webjob to pick up the right key depending on the environment that it is being deployed to. Has one one done this before? Any advice on settings up configurations in octopus?
<========== UPDATE ===========>
We were being careless and didn't quite set our octopus process to transform the Configuration Variables. You should be able to do so by clicking 'configure variables' in the process step.
I don't think it being deployed via Octopus is all that relevant here. Generally, a .NET WebJob is able to access Azure App Setting using standard configuration API.
If that is not working for you, please update your question to clarify what you tries, and specifically what didn't work.

aws alternative console/management web ui (stop/start/create/list)

Been searching for the last few days for an alternative to the AWS Console Web ui.
We want to give this to our employees to manage their development/test environment their self without interaction from the IT team.
What we want is an extra Web ui that does the following "management tasks"
List all instances (maybe based on tags)
Stop / Start instances
Create / Destroy instances (from specific AMI's)
Also we would like to have logs + authentication (preferable LDAP)
I found a few but none of them actually was that simple.
We would also prefer to have a django/python based application but sinatra is also fine.
Alternatives that I found:
Asgard from netflix
Spurios (has no EC2 instances)
We also found Flask app builder to build our own app but it would be nice if some things already exsists. I believe many company's want the same but are they keeping that for internal use only ?
Maybe you know more projects that I, for some reason, did not stumble on.

How to filter App Engine access logs for requests without a parameter

I want to introduce a new mandatory parameter to the API of my webservice I have deployed on App Engine. However, before I enable the server side check I want to check whether all the clients have been updated to send the parameter.
App Engine provides a GUI for searching the access log. I want to use this to find all logs which don't contain the new parameter.
I know from How to "inverse match" with regex? that I should be able to use the regex "(?!paramname)" but this currently returns an error from App Engine:
Client Error
The request is invalid for an unspecified reason.
Is there another way for me to do this? I'm not interested in solutions which involve me downloading the logs.
EDIT: This has already been raised as a bug: http://code.google.com/p/googleappengine/issues/detail?id=1874
I know you asked not for methods involving downloading logs, but since you could list all your logs and grep away the ones you don't want in your shell with just a single line using appcfg.py I still thought it would be worth noting.
So if you wanted to dump all your logs by browsers that are not Safari you could run:
$ appcfg.py request_logs --include_all --severity=0 /path/to/app - | grep -v "Safari"

Tomcat 5.5 Axis2 application scope problem - Unable to create single instance

I have deployed an axis2 web service on Tomcat 5.5. The web service functions as expected. But I noticed I was getting duplicated log entries. After researching it became clear that multiple instances of the class were being created - ie the first time it ran, one log entry; second time, two entries and so on.
I added the scope="application" parameter, but that has not solved the problem. I added it both in the service tag and as a separate parameter tag to no avail.
This class has many key global variables, logging being one of them. Frustrated as I am, I still haven't gotten to the point of deconstructing the globals (major overhaul, breaks code conventions in my department). Are global variables the culprit? Or is there some other Tomcat/Axis2 config I am missing?
Will post services.xml or other code upon request.
Thanks in advance - Bill
I have solved the problem...don't necessarily understand why but I now have the correct behavior...
The services.xml file I created as part of the web service (WEB-INF/services/myService/META-INF) was being overridden by config in tomcat/conf/server.xml, where I had previously only referred to myService with a context block. In order for myService to have unique service-level parameters, it has to have it's own config in tomcat/conf/server.xml...not just a context reference.
It seems to me that this is not the best config...services and contexts in server.xml. It's not dynamic that way. Unfortunately I am following a standard set here many moons ago, so nothing I can do.