WebServiceHandlerNodepublic class WebServiceHandlerNode extends DisplayableComponentNode This node does xml marshalling to/from web service handlers. |
Fields Summary |
---|
private static final XMLElement | tag | private com.sun.enterprise.deployment.NameValuePairDescriptor | initParam |
Constructors Summary |
---|
public WebServiceHandlerNode()
super();
|
Methods Summary |
---|
protected java.util.Map | getDispatchTable()all sub-implementation of this class can use a dispatch table to map xml element to
method name on the descriptor class for setting the element value.
Map table = super.getDispatchTable();
table.put(WebServicesTagNames.SOAP_ROLE, "addSoapRole");
table.put(WebServicesTagNames.HANDLER_NAME, "setHandlerName");
table.put(WebServicesTagNames.HANDLER_CLASS, "setHandlerClass");
table.put(WebServicesTagNames.HANDLER_PORT_NAME, "addPortName");
return table;
| protected XMLElement | getXMLRootTag()
return tag;
| public void | setElementValue(XMLElement element, java.lang.String value)receives notification of the value for a particular tag
String qname = element.getQName();
WebServiceHandler handler = (WebServiceHandler) getDescriptor();
if (WebServicesTagNames.INIT_PARAM_NAME.equals(qname)) {
initParam = new NameValuePairDescriptor();
initParam.setName(value);
} else if (WebServicesTagNames.INIT_PARAM_VALUE.equals(qname)) {
initParam.setValue(value);
handler.addInitParam(initParam);
} else if (TagNames.DESCRIPTION.equals(qname)) {
if( initParam != null ) {
// description for the init-param
initParam.setDescription(value);
initParam = null;
} else {
// must be the description element of the handler itself.
super.setElementValue(element, value);
}
} else if (WebServicesTagNames.SOAP_HEADER.equals(qname) ) {
String prefix = getPrefixFromQName(value);
String localPart = getLocalPartFromQName(value);
String namespaceUri = resolvePrefix(element, prefix);
if( namespaceUri == null) {
DOLUtils.getDefaultLogger().log(Level.SEVERE, "enterprise.deployment.backend.invalidDescriptorMappingFailure",
new Object[] {prefix , handler.getHandlerName()});
} else {
QName soapHeader = new QName(namespaceUri, localPart);
handler.addSoapHeader(soapHeader);
}
} else super.setElementValue(element, value);
| public org.w3c.dom.Node | writeDescriptor(org.w3c.dom.Node parent, java.lang.String nodeName, com.sun.enterprise.deployment.WebServiceHandler handler)write the method descriptor class to a query-method DOM tree and
return it
Node wshNode = super.writeDescriptor(parent, nodeName, handler);
writeDisplayableComponentInfo(wshNode, handler);
appendTextChild(wshNode,
WebServicesTagNames.HANDLER_NAME,
handler.getHandlerName());
appendTextChild(wshNode,
WebServicesTagNames.HANDLER_CLASS,
handler.getHandlerClass());
for(Iterator iter = handler.getInitParams().iterator();iter.hasNext();){
NameValuePairDescriptor next = (NameValuePairDescriptor)iter.next();
Node initParamNode =
appendChild(wshNode, WebServicesTagNames.INIT_PARAM);
appendTextChild(initParamNode, WebServicesTagNames.INIT_PARAM_NAME,
next.getName());
appendTextChild(initParamNode, WebServicesTagNames.INIT_PARAM_VALUE,
next.getValue());
}
for(Iterator iter = handler.getSoapHeaders().iterator();
iter.hasNext();) {
QName next = (QName) iter.next();
// Append soap header QName. NOTE : descriptor does not contain
// a prefix so always generate one.
appendQNameChild(WebServicesTagNames.SOAP_HEADER, wshNode,
next.getNamespaceURI(), next.getLocalPart(), null);
}
for(Iterator iter = handler.getSoapRoles().iterator(); iter.hasNext();){
String next = (String) iter.next();
appendTextChild(wshNode, WebServicesTagNames.SOAP_ROLE, next);
}
for(Iterator iter = handler.getPortNames().iterator(); iter.hasNext();){
String next = (String) iter.next();
appendTextChild(wshNode, WebServicesTagNames.HANDLER_PORT_NAME,
next);
}
return wshNode;
| public void | writeWebServiceHandlers(org.w3c.dom.Node parent, java.util.List handlerChain)
for(Iterator iter = handlerChain.iterator(); iter.hasNext();) {
WebServiceHandler next = (WebServiceHandler) iter.next();
writeDescriptor(parent, WebServicesTagNames.HANDLER, next);
}
|
|