fabric8io / fabric8

fabric8 is an open source microservices platform based on Docker, Kubernetes and Jenkins
http://fabric8.io/
1.76k stars 504 forks source link

Great job on the mule container addition but example with endpoints please? #2683

Closed stevef1uk closed 9 years ago

stevef1uk commented 9 years ago

Hi,

I am reasonably new to Mule and wanted to try another of their example flows: web-service-consumer as this is a little more complex than the HelloWorld one and actually exposes endpoints :-)

Following the approach of HelloWorld example I have compiled and successfully deployed the web-service-consumer to fabric8 using mvn, where I can create a child container and run the new mule example within it and all seems ok. However, I can't access the URLs to get the same result as running locally within AnyPoint Studio, e.g. http://localhost:8001/inventory

I guess I need to configure something else and looking at the Java CFX example under src/main/fabric8 there is a configuration file, io.fabric8.container.java.properties which sets the server port and the main class. I am guessing that I need to add this to the Mule example, but I don't know what the main class if for a mule flow with zero Java code.

Any suggestions?

davsclaus commented 9 years ago

Maybe switch to Tomcat + Camel and it all just works much better ;)

zenlambda commented 9 years ago

Hi @stevef1uk , glad to hear you like the new Mule example.

However, I can't access the URLs to get the same result as running locally within AnyPoint Studio, e.g. http://localhost:8001/inventory

Not sure why access is a problem, in the example I just set the listen address to 0.0.0.0, so as long as I know the container ip, I can access the web server on 2121.

Perhaps your concern is configuration. That is the next logical step, to inject listen ip and port from the fabric8 profile to a template config file that is read by the mule app (say a propertyconfigurator). The mule.ce container contains examples of properties and app config files that are generated template expressions. Another approach is to write some kind of mule agent that interrogates the fabric8 service registry. That would perhaps mimic the way that camel based fabric8 containers discover brokers.

I am guessing that I need to add this to the Mule example, but I don't know what the main class if for a mule flow with zero Java code.

Now this sounds like is a slightly different apprach where you invoke the MuleServer class as a (plain old) java 'microservice' container, of the kind that has recently been added to fabric8. This segment of the maven build should give you a clue how to invoke it.