I think the way is to implement a lookup during runtime.
A injection will run before @PostConstruct, if the service disapear after starting the main application the link become invalid.
A dependency, ATM I don't know how depend to another EAR, is also not possible.
In this case the main application goes down if you redeploy your additional application.
On the other hand the addon might not be available for a time during redeploy and it depends what you want in this case ??