The Axis2 Information Model, Page 3
AxisOperation is the runtime description representation of an exposed Web service operation. As an example, say you have published an operation called "bar" in Web service "Foo". There should be an AxisService object called "Foo" and that service will have an AxisOperation object called "bar". The parent description of an AxisOperation is the AxisService, and any parameter defined in the parent's descriptions can be accessed inside the child, in this case, the AxisOperation. So, any parameter in AxisConfiguration, AxisServiceGroup, and AxisService can be accessed and used inside AxisOperation. I typical AxisOperation contains:
- Engaged modules
- Operation name
- Soap actions
AxisMessage is the bottom or leaf element of the service hierarchy. Its parent is an AxisOperation. Unlike AxisService, which has a set op AxisOperations, an AxisOperation does not have a set of AxisMessages. The number of AxisMessages in an AxisOperation is based on the MEP of that particular AxisOperation. For example, if the operation is "in-out", there will be only two AxisMessages in it, one to represent the in message configuration and other to represent the out message configuration. AxisMessage has the following set of data:
- Message Label
- Element Qname of the corresponding schema element (optional)
Having message elements inside the operation element of the services.xml is optional. You need to add that only if you need to override the default.
In this article, I discussed the Axis2 static data hierarchy, which provides more flexibility and extensibility to Axis2. Throughout the article, you learned about various types of data in the static data hierarchy and when and how they are created. More importantly, you discovered a different kind of configuration that you can see in the Axis2 global configuration file.
About the Author
Deepal Jayasinghe is a computer science graduate student at Georgia Tech and an Apache Member. Before joining Georgia Tech, he worked at WSO2 for about three years. His interest is mainly in SOA and distributed computing, especially Web services. Deepal was a key member who designed, developed, and implemented the de-facto Java Web service framework, Axis2.
In addition to Axis2, he has contributed to a number of other open source projects, such as Apache Axiom, Apache Synapse, WSO2 Registry, WSO2, and WSAS.