Hi Devs,
We have a use case where a client or stub need to be invoked from a
web service running in server side. If this client or stub need to use
any QOS such as security etc,
[1]. It needs to create an AxisConfiguration pointing to a repository
containing such modules
[2] It could use the AxisConfiguration that is available from server,
if the server AxisConfiguration has relevant QOS modules.
If the client uses the first approach, it needs to point to a
repository and possibly to an axis2.xml. Thus, either the user has
to use the server's repository or user has to ship his own one. If
user uses the server's repository, this would possibly cause axis
faults from different reasons. Ex: if the repository contains services
that need https or jms transport and if user has given default
axis2.xml or some other axis2.xml, user cannot create AxisConfiguration.
Nope that will not happen , service deployment issues will not affect
the creation of AxisConfiguration. So if your services in the repo need
jms or https support then , that will not affect creation of
AxisConfiguration.
Well what I can suggest is to add your modules into classpath and then
create serviceClient using its default constructor , or create default
AxisConfiguration and then create ServiceClient. In either case you will
get support for all the modules in the class path.
Even if use has given axis2.xml that comes with server, this could
fail, if it is optimized for server.
hmm , can you please explain this a bit.
If the client uses 2nd approach, it could also produce axis faults, if
the user is not aware of the environment.
Thus, the most safe and user centric way to support this scenario is
to give the user the ability to create a default AxisConfiguration and
later allow the user to "install" modules into AxisConfiguration.
Thus, this would require an extension to AxisConfiguration ,say
Well still you can do that without introducing new class or interface
just use following methods in DeployementEngine
DeployementEngine.buildModule(File , axisConfiguration) ;
public class AxisConfiguration .. {
...
// Install a module to Axis2
public int installModule(URL moduleLocation) throws AxisFault {...}
// Uninstall a module with the given id or url
public void uninstallModule(int id) {...}
public void uninstallModule(URL moduleLocaiton) throws AxisFault {...}
}
Thus, user can create an empty AxisConfiguration and later he could
install a module say Sandesha2.mar from
http://ws.apache.org/axis2/qos/Sandesha2-1.5.mar or
file:/usr/local/share/Ramprt-1.4.mar or from a public registry and do
users work. "installModule" only install a given module archive with
.mar extension and nothing else and produced an unique id that can be
later used to reference that module.
Later one could remove (merely uninstall) a module saying,
AxisConfiguration#uninstallModule(URL moduleLocation) or
AxisConfiguration#uninstallModule(int id) giving an ID that coming
from when installing the module.
Simply, we would like a way to install modules (only the required
ones) from runtime, if the associated AxisConfiguration dose not have
the required modules.
I understand what you mention here , however as I mentioned above you
can get that working without changing AxisConfiguration. Anyway I have
no problem with adding those above methods into AxisConfiguration.
So I am 0+ on this
Thank you!
Deepal
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]