次のように、プログラムでAxis 2(1.5)でサービスを開始しています。
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();
この設定では、サービスは最初の操作リクエストが到着したときにのみ作成されます-軸にサービスをすぐに構築させるにはどうすればよいですか?
更新: cfg.addService()ではなくdeployService()を使用しようとしましたが、これによりサービスがすぐに開始されます。ただし、最初のリクエストが届いたときにサービスの別のインスタンスが作成されるため、これも適切ではありません。