Hi,
I am currently planning a project concerning with storing composed objects in a database.
(E.g. an object contains some simple attributes (double, String,...) but also lists/array of objects
of other classes -> could be easily represented as XML tree).
Therefore, an application server should provide a web service (implemented in Java) to
store and retrieve the object data to a database server. Hence, the web service provides
a standard interface independet of the database implementation in the background.
Requirements to the clients are:
- It should be possible to use either C++ or Java
- Clients should run on Windows and Linux
Until now, I have investigated Axis 1.x, Axis2 and JWSDP.
Interaction works quite well with Axis 1.x and JWSDP using the JAX-RPC and JAX-WS model.
Also, it seems to be possible to consume an Axis2 JAX-RPC service with JWSDP. Although, there
are some warnings during generation of the stubs out of the WSDL document generated by Axis2.
Most sources I read state that JAX-RPC is deprecated for new projects. Instead, JAX-WS or the
Axis2 AXIOM model are recommended. Furthermore, Axis2 is considered to work much faster
compared to Axis 1.x and JWSDP.
I have the following concerns using Axis2 with so called raw XML data:
1.)
Serialisation/Desrialisation in both the client and the server works independent. Hence, the
client for instance may send XML data that is not needed by the server or miss some elements.
Is this a convenient way to transfer data?
From my point of view, it is much safer to use data binding which defines the schema of data.
But this leads to a JAX-RPC style service...
2.)
It seems to be only possible to connect to the raw XML service with clients using Axis2.
Is this true?
In order to implement C++ clients, I then have to use the Axis2/C library, which seems to be still under strong
development and may not be well suited for productive use.
However, I want to use a state-of-the-art technology and not stick to somehow deprecated standards.
Can you give me some hints to this subject?
Do you think that for the given problem it is sufficient to use JAX-RPC or switch to AXIOM?
I found it very hard to find documentation that goes deeper as the Axis User Guide. Any pointers?
Kind regards,
Christoph
