protected List<Handler> buildHandlerChain(PortComponentHandlerType ht, ClassLoader classLoader) { List<Handler> handlerChain = new ArrayList<Handler>(); try { LOG.log(Level.FINE, "loading handler", trimString(ht.getHandlerName().getValue())); Class<? extends Handler> handlerClass = Class.forName(trimString(ht.getHandlerClass().getValue()), true, classLoader) .asSubclass(Handler.class); Handler<?> handler = handlerClass.newInstance(); LOG.fine("adding handler to chain: " + handler); configureHandler(handler, ht); handlerChain.add(handler); } catch (Exception e) { throw new WebServiceException(BUNDLE.getString("HANDLER_INSTANTIATION_EXC"), e); } return handlerChain; }
private void configureHandler(Handler<?> handler, PortComponentHandlerType h) { if (!handlerInitEnabled) { return; } if (h.getInitParam().size() == 0) { return; } Map<String, String> params = new HashMap<String, String>(); for (ParamValueType param : h.getInitParam()) { params.put( trimString(param.getParamName() == null ? null : param.getParamName().getValue()), trimString(param.getParamValue() == null ? null : param.getParamValue().getValue())); } Method initMethod = getInitMethod(handler); if (initMethod != null) { initializeViaInitMethod(handler, params, initMethod); } else { initializeViaInjection(handler, params); } }