I have heard many times from customers using Expeditor to develop their composite applications that the WSDL is very complicated and not easy to follow. While we do have some great tools for Notes, currently those tools do not exist in the Expeditor toolkit. If the WSDL is just too much for you, you can alternatively use the Property Broker API's to register Properties, Actions, and Wires.
First thing to do is get an instance of the broker in your code using the PropertyBrokerFactory:
PropertyBroker broker = PropertyBrokerFactory.getBroker();
Then you can use the PropertyFactory to create Actions, and Properties. These methods return you controller objects so you can modify the objects properties.
public static ActionController createAction()
public static PropertyController createProperty()
Similarily, you can create wires using the WireFactory:
WireFactory wf = broker.getWireFactory();
WireController wire = wf.createWire();
You then use the broker object to register and unregister your objects:
public void registerActions(Object ownerID, Action actions) throws PropertyBrokerException;
public void registerProperties(Object ownerID, Property props) throws PropertyBrokerException;
public void registerWires(Object ownerID, Wire wires) throws PropertyBrokerException;
public void unregisterActions(Object owner) throws PropertyBrokerException;
public void unregisterWires(Object owner) throws PropertyBrokerException;
public void unregisterProperties(Object owner) throws PropertyBrokerException;
The broker also has methods where you can enable and disable both Actions and Wires. The Composite Application Infrastructure dynamically creates wires from the XML coming from Notes or Portal, it also handles enabling and disabling the wires when a screen (perspective) is switched - essentially using a perspective change listener. The identifiers used in these wires (target and source entity id's) are the same identifiers CAI uses to create the full view Id's for the perspectives it dynamically creates from the XML. Each component (portlet or view) on the screen has a unique identifier, this same identifier (your Eclipse view) should be used when registering your Properties and Actions.
So in general, if you are using the API's you have to make sure all of the indentiers and owners match. For instance, if you call changeProperties() and the owner passed in does not match the owner you used to create the Property or Action you will get exceptions. The same goes for the wires, if the owner identifier passed into changeProperties() does not match a source entity id on an enabled wire then the property change will not be delivered.