Did you initially create the fabric on your local machine and then use that fabric to create a container in EC2? In this case the container would need to be able to connect back to your local machine on port 8107 to download that artifact.
The way it works is a fabric server runs the fabric maven proxy service. When containers are created and provisioned they download artifacts via the fabric maven proxy. So they need to be able to connect back to the OSGi HTTP service port, if you used FMC to create your fabric it'll be on 8107 as FMC configures it differently so as not to conflict with a Fuse ESB instance running on the same host.
okay..after fixing all the issues, and utilizing some workarounds, I was able to deploy bundle in fuse fabric which has just one simple camel route (blueprint.xml attached)
But somehow I am seeing below error when deploying it from fuse IDE:
2012-07-25 17:03:58,183 | ERROR | agent-1-thread-1 | DeploymentAgent | 57 - org.fusesource.fabric.fabric-agent - 7.0.0.fuse-061 | Unable to update agent
java.lang.Exception: Can not resolve feature:
A Camel Blueprint Route
am I missing any package/feature/bundle here?
When I deployed fabric camel example, "fabric-camel-demo-7.0.0.fuse-061", it worked fine ...
blueprint.xml 1.8 K
Check and see if IDE put it in the profile under the "Bundles" tab or under the "Fuse Application Bundles" tab in FMC. If it was installed as a bundle then you'd have to make the profile a child of the "camel" profile, which will install the camel-core and camel-blueprint feature. If it's the latter then the FAB runtime should have installed it for you, maybe make sure the profile created by IDE is a child of the "default" profile as the "default" profile includes the FAB runtime bundle, which turns a normal maven-built Jar into an OSGi bundle and should be installing dependent features automatically.
really appreciate your prompt response.
so, I bypassed that error..
My camel route has jetty endpoint and routing to activemq queue.
I have attached the blue print xml . Now, if I create new profile under camel and deploy this bundle , it has some dependencies it has to wait for like I see in log:
should I associate new repositories to this profile or we already have existing profile which I inherit from?
whats the best approach?
blueprint_jetty_mq.xml 1.7 K
Best practice is to re-use the out of box profiles whenever you can, as they mostly define feature repositories that have consistent versions. So for example you probably want to inherit from the "camel" profile, think that should have the features repositories your route would depend on, might need "mq" or "mq-base" if you're using activemq-camel. Strangely enough I'm not seeing the features repo for activemq stuff in my development build so just to be on the safe side you might need to add:
to your profile if just adding camel doesn't do the trick
okay.. I have added repository
to my profile...
As per logs everything is okay.
Now when I try to add my bundle with one caamel route it again complains about dependency
undle camel-blueprint is waiting for dependencies [(&(component=activemq)(
If you look at my route, it has jetty component as FROM URI and MQ queue as TO URI
using fabric addressing scheme..do I have to add anyother dependency?
I can just go and execute below command to add activemq-camel to my profile:
profile-edit --features activemq-camel cumulus_camel
but I think there is more attached to it when you want to assign features to profile.
For e.g when I look at camel profile, their features look something like:
do I have to pass the complete path or something or my command is good?
Yep, so you don't have to specify the feature version as those profiles do, the provisioning agent can figure that out based on the feature repository. It's generally better to leave off the version actually, as then you can just change the feature repository version to update all relevant features.
Also, use FMC to make the update, should be easier than profile-edit on the command line
thanks a lot.. I was able to deploy the jetty/mq camel route..
I am trying to call camel jetty endpoint from my local machine but its not working..
I have enabled port 8888 on fabric server and trying to call jetty endpoint using fabric server public IP address as below:
my camel route is like this:
<log message="Request received : $"/>
when I execute zk command, it does say endpoint is deployed but I am not sure why its appearing twice...
FMC:karaf@FuseManagementConsole> zk:list -r -d fabric/registry/camel
endpoints/cumuluscluster/00000000018 = jetty:http://0.0.0.0:8888/hellocamel
endpoints/cumuluscluster/00000000019 = jetty:http://0.0.0.0:8888/hellocamel
still looking to understand how to call this endpoint from external machine which is out of amazon cloud..