Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Starting an axis2 service programmatically

I'm programmatically starting a service in Axis 2 (1.5), like this:

ConfigurationContext context = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);

AxisConfiguration cfg = context.getAxisConfiguration();
Map<String, MessageReceiver> mrMap = new HashMap<String, MessageReceiver>();
mrMap.put("http://www.w3.org/ns/wsdl/in-only", RPCInOnlyMessageReceiver.class.newInstance());
mrMap.put("http://www.w3.org/ns/wsdl/in-out", RPCMessageReceiver.class.newInstance());

AxisService service = AxisService.createService(MonitorWebService.class.getName(), cfg, mrMap, "", "http://samples", MonitorWebService.class.getClassLoader());
service.setScope("application");
cfg.addService(service);
SimpleHTTPServer server = new SimpleHTTPServer(context, 8080);
server.start();

With this set up, the service is only created when the first operation request arrives - how can I force axis to construct the service immediately?

Update: I've tried using deployService(), rather than cfg.addService(), and this starts the service up immediately. However, another instance of the service is created when the first request comes in, so that's no good either.

like image 691
Andy Avatar asked Jun 29 '26 13:06

Andy


1 Answers

A cheesy way to do it would be to have the code call the service immediately after you start the service.

like image 56
BZ. Avatar answered Jul 01 '26 01:07

BZ.