src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/SOAPExtensionHandler.java

Thu, 31 Aug 2017 15:18:52 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:18:52 +0800
changeset 637
9c07ef4934dd
parent 368
0989ad8c0860
parent 0
373ffda63c9a
permissions
-rw-r--r--

merge

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation. Oracle designates this
aoqi@0 8 * particular file as subject to the "Classpath" exception as provided
aoqi@0 9 * by Oracle in the LICENSE file that accompanied this code.
aoqi@0 10 *
aoqi@0 11 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 14 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 15 * accompanied this code).
aoqi@0 16 *
aoqi@0 17 * You should have received a copy of the GNU General Public License version
aoqi@0 18 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 20 *
aoqi@0 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 22 * or visit www.oracle.com if you need additional information or have any
aoqi@0 23 * questions.
aoqi@0 24 */
aoqi@0 25
aoqi@0 26 package com.sun.tools.internal.ws.wsdl.parser;
aoqi@0 27
aoqi@0 28 import com.sun.tools.internal.ws.api.wsdl.TWSDLExtensible;
aoqi@0 29 import com.sun.tools.internal.ws.api.wsdl.TWSDLParserContext;
aoqi@0 30 import com.sun.tools.internal.ws.util.xml.XmlUtil;
aoqi@0 31 import com.sun.tools.internal.ws.wsdl.document.soap.*;
aoqi@0 32 import com.sun.tools.internal.ws.wsdl.framework.TWSDLParserContextImpl;
aoqi@0 33 import org.w3c.dom.Element;
aoqi@0 34 import org.xml.sax.Locator;
aoqi@0 35
aoqi@0 36 import javax.xml.namespace.QName;
aoqi@0 37 import java.util.Iterator;
aoqi@0 38 import java.util.Map;
aoqi@0 39
aoqi@0 40 /**
aoqi@0 41 * The SOAP extension handler for WSDL.
aoqi@0 42 *
aoqi@0 43 * @author WS Development Team
aoqi@0 44 */
aoqi@0 45 public class SOAPExtensionHandler extends AbstractExtensionHandler {
aoqi@0 46
aoqi@0 47 public SOAPExtensionHandler(Map<String, AbstractExtensionHandler> extensionHandlerMap) {
aoqi@0 48 super(extensionHandlerMap);
aoqi@0 49 }
aoqi@0 50
aoqi@0 51 public String getNamespaceURI() {
aoqi@0 52 return Constants.NS_WSDL_SOAP;
aoqi@0 53 }
aoqi@0 54
aoqi@0 55 public boolean handleDefinitionsExtension(
aoqi@0 56 TWSDLParserContext context,
aoqi@0 57 TWSDLExtensible parent,
aoqi@0 58 Element e) {
aoqi@0 59 Util.fail(
aoqi@0 60 "parsing.invalidExtensionElement",
aoqi@0 61 e.getTagName(),
aoqi@0 62 e.getNamespaceURI());
aoqi@0 63 return false; // keep compiler happy
aoqi@0 64 }
aoqi@0 65
aoqi@0 66 public boolean handleTypesExtension(
aoqi@0 67 com.sun.tools.internal.ws.api.wsdl.TWSDLParserContext context,
aoqi@0 68 TWSDLExtensible parent,
aoqi@0 69 Element e) {
aoqi@0 70 Util.fail(
aoqi@0 71 "parsing.invalidExtensionElement",
aoqi@0 72 e.getTagName(),
aoqi@0 73 e.getNamespaceURI());
aoqi@0 74 return false; // keep compiler happy
aoqi@0 75 }
aoqi@0 76
aoqi@0 77 protected SOAPBinding getSOAPBinding(Locator location){
aoqi@0 78 return new SOAPBinding(location);
aoqi@0 79 }
aoqi@0 80
aoqi@0 81 public boolean handleBindingExtension(
aoqi@0 82 TWSDLParserContext context,
aoqi@0 83 TWSDLExtensible parent,
aoqi@0 84 Element e) {
aoqi@0 85 if (XmlUtil.matchesTagNS(e, getBindingQName())) {
aoqi@0 86 context.push();
aoqi@0 87 context.registerNamespaces(e);
aoqi@0 88
aoqi@0 89 SOAPBinding binding = getSOAPBinding(context.getLocation(e));
aoqi@0 90
aoqi@0 91 // NOTE - the "transport" attribute is required according to section 3.3 of the WSDL 1.1 spec,
aoqi@0 92 // but optional according to the schema in appendix A 4.2 of the same document!
aoqi@0 93 String transport =
aoqi@0 94 Util.getRequiredAttribute(e, Constants.ATTR_TRANSPORT);
aoqi@0 95 binding.setTransport(transport);
aoqi@0 96
aoqi@0 97 String style = XmlUtil.getAttributeOrNull(e, Constants.ATTR_STYLE);
aoqi@0 98 if (style != null) {
aoqi@0 99 if (style.equals(Constants.ATTRVALUE_RPC)) {
aoqi@0 100 binding.setStyle(SOAPStyle.RPC);
aoqi@0 101 } else if (style.equals(Constants.ATTRVALUE_DOCUMENT)) {
aoqi@0 102 binding.setStyle(SOAPStyle.DOCUMENT);
aoqi@0 103 } else {
aoqi@0 104 Util.fail(
aoqi@0 105 "parsing.invalidAttributeValue",
aoqi@0 106 Constants.ATTR_STYLE,
aoqi@0 107 style);
aoqi@0 108 }
aoqi@0 109 }
aoqi@0 110 parent.addExtension(binding);
aoqi@0 111 context.pop();
aoqi@0 112 // context.fireDoneParsingEntity(getBindingQName(), binding);
aoqi@0 113 return true;
aoqi@0 114 } else {
aoqi@0 115 Util.fail(
aoqi@0 116 "parsing.invalidExtensionElement",
aoqi@0 117 e.getTagName(),
aoqi@0 118 e.getNamespaceURI());
aoqi@0 119 return false; // keep compiler happy
aoqi@0 120 }
aoqi@0 121 }
aoqi@0 122
aoqi@0 123 public boolean handleOperationExtension(
aoqi@0 124 TWSDLParserContext context,
aoqi@0 125 TWSDLExtensible parent,
aoqi@0 126 Element e) {
aoqi@0 127 if (XmlUtil.matchesTagNS(e, getOperationQName())) {
aoqi@0 128 context.push();
aoqi@0 129 context.registerNamespaces(e);
aoqi@0 130
aoqi@0 131 SOAPOperation operation = new SOAPOperation(context.getLocation(e));
aoqi@0 132
aoqi@0 133 String soapAction =
aoqi@0 134 XmlUtil.getAttributeOrNull(e, Constants.ATTR_SOAP_ACTION);
aoqi@0 135 if (soapAction != null) {
aoqi@0 136 operation.setSOAPAction(soapAction);
aoqi@0 137 }
aoqi@0 138
aoqi@0 139 String style = XmlUtil.getAttributeOrNull(e, Constants.ATTR_STYLE);
aoqi@0 140 if (style != null) {
aoqi@0 141 if (style.equals(Constants.ATTRVALUE_RPC)) {
aoqi@0 142 operation.setStyle(SOAPStyle.RPC);
aoqi@0 143 } else if (style.equals(Constants.ATTRVALUE_DOCUMENT)) {
aoqi@0 144 operation.setStyle(SOAPStyle.DOCUMENT);
aoqi@0 145 } else {
aoqi@0 146 Util.fail(
aoqi@0 147 "parsing.invalidAttributeValue",
aoqi@0 148 Constants.ATTR_STYLE,
aoqi@0 149 style);
aoqi@0 150 }
aoqi@0 151 }
aoqi@0 152 parent.addExtension(operation);
aoqi@0 153 context.pop();
aoqi@0 154 // context.fireDoneParsingEntity(
aoqi@0 155 // getOperationQName(),
aoqi@0 156 // operation);
aoqi@0 157 return true;
aoqi@0 158 } else {
aoqi@0 159 Util.fail(
aoqi@0 160 "parsing.invalidExtensionElement",
aoqi@0 161 e.getTagName(),
aoqi@0 162 e.getNamespaceURI());
aoqi@0 163 return false; // keep compiler happy
aoqi@0 164 }
aoqi@0 165 }
aoqi@0 166
aoqi@0 167 public boolean handleInputExtension(
aoqi@0 168 TWSDLParserContext context,
aoqi@0 169 TWSDLExtensible parent,
aoqi@0 170 Element e) {
aoqi@0 171 return handleInputOutputExtension(context, parent, e);
aoqi@0 172 }
aoqi@0 173 public boolean handleOutputExtension(
aoqi@0 174 TWSDLParserContext context,
aoqi@0 175 TWSDLExtensible parent,
aoqi@0 176 Element e) {
aoqi@0 177 return handleInputOutputExtension(context, parent, e);
aoqi@0 178 }
aoqi@0 179
aoqi@0 180 @Override
aoqi@0 181 protected boolean handleMIMEPartExtension(
aoqi@0 182 TWSDLParserContext context,
aoqi@0 183 TWSDLExtensible parent,
aoqi@0 184 Element e) {
aoqi@0 185 return handleInputOutputExtension(context, parent, e);
aoqi@0 186 }
aoqi@0 187
aoqi@0 188 protected boolean handleInputOutputExtension(
aoqi@0 189 TWSDLParserContext contextif,
aoqi@0 190 TWSDLExtensible parent,
aoqi@0 191 Element e) {
aoqi@0 192 TWSDLParserContextImpl context = (TWSDLParserContextImpl)contextif;
aoqi@0 193 if (XmlUtil.matchesTagNS(e, getBodyQName())) {
aoqi@0 194 context.push();
aoqi@0 195 context.registerNamespaces(e);
aoqi@0 196
aoqi@0 197 SOAPBody body = new SOAPBody(context.getLocation(e));
aoqi@0 198
aoqi@0 199 String use = XmlUtil.getAttributeOrNull(e, Constants.ATTR_USE);
aoqi@0 200 if (use != null) {
aoqi@0 201 if (use.equals(Constants.ATTRVALUE_LITERAL)) {
aoqi@0 202 body.setUse(SOAPUse.LITERAL);
aoqi@0 203 } else if (use.equals(Constants.ATTRVALUE_ENCODED)) {
aoqi@0 204 body.setUse(SOAPUse.ENCODED);
aoqi@0 205 } else {
aoqi@0 206 Util.fail(
aoqi@0 207 "parsing.invalidAttributeValue",
aoqi@0 208 Constants.ATTR_USE,
aoqi@0 209 use);
aoqi@0 210 }
aoqi@0 211 }
aoqi@0 212
aoqi@0 213 String namespace =
aoqi@0 214 XmlUtil.getAttributeOrNull(e, Constants.ATTR_NAMESPACE);
aoqi@0 215 if (namespace != null) {
aoqi@0 216 body.setNamespace(namespace);
aoqi@0 217 }
aoqi@0 218
aoqi@0 219 String encodingStyle =
aoqi@0 220 XmlUtil.getAttributeOrNull(e, Constants.ATTR_ENCODING_STYLE);
aoqi@0 221 if (encodingStyle != null) {
aoqi@0 222 body.setEncodingStyle(encodingStyle);
aoqi@0 223 }
aoqi@0 224
aoqi@0 225 String parts = XmlUtil.getAttributeOrNull(e, Constants.ATTR_PARTS);
aoqi@0 226 if (parts != null) {
aoqi@0 227 body.setParts(parts);
aoqi@0 228 }
aoqi@0 229
aoqi@0 230 parent.addExtension(body);
aoqi@0 231 context.pop();
aoqi@0 232 // context.fireDoneParsingEntity(getBodyQName(), body);
aoqi@0 233 return true;
aoqi@0 234 } else if (XmlUtil.matchesTagNS(e, getHeaderQName())) {
aoqi@0 235 return handleHeaderElement(parent, e, context);
aoqi@0 236 } else {
aoqi@0 237 Util.fail("parsing.invalidExtensionElement", e.getTagName(), e.getNamespaceURI());
aoqi@0 238 return false; // keep compiler happy
aoqi@0 239 }
aoqi@0 240 }
aoqi@0 241
aoqi@0 242 private boolean handleHeaderElement(TWSDLExtensible parent, Element e, TWSDLParserContextImpl context) {
aoqi@0 243 context.push();
aoqi@0 244 context.registerNamespaces(e);
aoqi@0 245
aoqi@0 246 SOAPHeader header = new SOAPHeader(context.getLocation(e));
aoqi@0 247
aoqi@0 248 String use = XmlUtil.getAttributeOrNull(e, Constants.ATTR_USE);
aoqi@0 249 if (use != null) {
aoqi@0 250 if (use.equals(Constants.ATTRVALUE_LITERAL)) {
aoqi@0 251 header.setUse(SOAPUse.LITERAL);
aoqi@0 252 } else if (use.equals(Constants.ATTRVALUE_ENCODED)) {
aoqi@0 253 header.setUse(SOAPUse.ENCODED);
aoqi@0 254 } else {
aoqi@0 255 Util.fail("parsing.invalidAttributeValue", Constants.ATTR_USE, use);
aoqi@0 256 }
aoqi@0 257 }
aoqi@0 258
aoqi@0 259 String namespace = XmlUtil.getAttributeOrNull(e, Constants.ATTR_NAMESPACE);
aoqi@0 260 if (namespace != null) {
aoqi@0 261 header.setNamespace(namespace);
aoqi@0 262 }
aoqi@0 263
aoqi@0 264 String encodingStyle = XmlUtil.getAttributeOrNull(e, Constants.ATTR_ENCODING_STYLE);
aoqi@0 265 if (encodingStyle != null) {
aoqi@0 266 header.setEncodingStyle(encodingStyle);
aoqi@0 267 }
aoqi@0 268
aoqi@0 269 String part = XmlUtil.getAttributeOrNull(e, Constants.ATTR_PART);
aoqi@0 270 if (part != null) {
aoqi@0 271 header.setPart(part);
aoqi@0 272 }
aoqi@0 273
aoqi@0 274 String messageAttr = XmlUtil.getAttributeOrNull(e, Constants.ATTR_MESSAGE);
aoqi@0 275 if (messageAttr != null) {
aoqi@0 276 header.setMessage(context.translateQualifiedName(context.getLocation(e), messageAttr));
aoqi@0 277 }
aoqi@0 278
aoqi@0 279 for (Iterator iter = XmlUtil.getAllChildren(e); iter.hasNext();) {
aoqi@0 280 Element e2 = Util.nextElement(iter);
aoqi@0 281 if (e2 == null)
aoqi@0 282 break;
aoqi@0 283
aoqi@0 284 if (XmlUtil.matchesTagNS(e2, getHeaderfaultQName())) {
aoqi@0 285 handleHeaderFaultElement(e, context, header, use, e2);
aoqi@0 286 } else {
aoqi@0 287 Util.fail("parsing.invalidElement", e2.getTagName(), e2.getNamespaceURI());
aoqi@0 288 }
aoqi@0 289 }
aoqi@0 290
aoqi@0 291 parent.addExtension(header);
aoqi@0 292 context.pop();
aoqi@0 293 context.fireDoneParsingEntity(getHeaderQName(), header);
aoqi@0 294 return true;
aoqi@0 295 }
aoqi@0 296
aoqi@0 297 private void handleHeaderFaultElement(Element e, TWSDLParserContextImpl context, SOAPHeader header, String use, Element e2) {
aoqi@0 298 context.push();
aoqi@0 299 context.registerNamespaces(e);
aoqi@0 300
aoqi@0 301 SOAPHeaderFault headerfault = new SOAPHeaderFault(context.getLocation(e));
aoqi@0 302
aoqi@0 303 String use2 = XmlUtil.getAttributeOrNull(e2, Constants.ATTR_USE);
aoqi@0 304 if (use2 != null) {
aoqi@0 305 if (use2.equals(Constants.ATTRVALUE_LITERAL)) {
aoqi@0 306 headerfault.setUse(SOAPUse.LITERAL);
aoqi@0 307 } else if (use.equals(Constants.ATTRVALUE_ENCODED)) {
aoqi@0 308 headerfault.setUse(SOAPUse.ENCODED);
aoqi@0 309 } else {
aoqi@0 310 Util.fail("parsing.invalidAttributeValue", Constants.ATTR_USE, use2);
aoqi@0 311 }
aoqi@0 312 }
aoqi@0 313
aoqi@0 314 String namespace2 = XmlUtil.getAttributeOrNull(e2, Constants.ATTR_NAMESPACE);
aoqi@0 315 if (namespace2 != null) {
aoqi@0 316 headerfault.setNamespace(namespace2);
aoqi@0 317 }
aoqi@0 318
aoqi@0 319 String encodingStyle2 = XmlUtil.getAttributeOrNull(e2, Constants.ATTR_ENCODING_STYLE);
aoqi@0 320 if (encodingStyle2 != null) {
aoqi@0 321 headerfault.setEncodingStyle(encodingStyle2);
aoqi@0 322 }
aoqi@0 323
aoqi@0 324 String part2 = XmlUtil.getAttributeOrNull(e2, Constants.ATTR_PART);
aoqi@0 325 if (part2 != null) {
aoqi@0 326 headerfault.setPart(part2);
aoqi@0 327 }
aoqi@0 328
aoqi@0 329 String messageAttr2 = XmlUtil.getAttributeOrNull(e2, Constants.ATTR_MESSAGE);
aoqi@0 330 if (messageAttr2 != null) {
aoqi@0 331 headerfault.setMessage(
aoqi@0 332 context.translateQualifiedName(context.getLocation(e2), messageAttr2));
aoqi@0 333 }
aoqi@0 334
aoqi@0 335 header.add(headerfault);
aoqi@0 336 context.pop();
aoqi@0 337 }
aoqi@0 338
aoqi@0 339 public boolean handleFaultExtension(
aoqi@0 340 TWSDLParserContext context,
aoqi@0 341 TWSDLExtensible parent,
aoqi@0 342 Element e) {
aoqi@0 343 if (XmlUtil.matchesTagNS(e, getFaultQName())) {
aoqi@0 344 context.push();
aoqi@0 345 context.registerNamespaces(e);
aoqi@0 346
aoqi@0 347 SOAPFault fault = new SOAPFault(context.getLocation(e));
aoqi@0 348
aoqi@0 349 String name = XmlUtil.getAttributeOrNull(e, Constants.ATTR_NAME);
aoqi@0 350 if (name != null) {
aoqi@0 351 fault.setName(name);
aoqi@0 352 }
aoqi@0 353
aoqi@0 354 String use = XmlUtil.getAttributeOrNull(e, Constants.ATTR_USE);
aoqi@0 355 if (use != null) {
aoqi@0 356 if (use.equals(Constants.ATTRVALUE_LITERAL)) {
aoqi@0 357 fault.setUse(SOAPUse.LITERAL);
aoqi@0 358 } else if (use.equals(Constants.ATTRVALUE_ENCODED)) {
aoqi@0 359 fault.setUse(SOAPUse.ENCODED);
aoqi@0 360 } else {
aoqi@0 361 Util.fail(
aoqi@0 362 "parsing.invalidAttributeValue",
aoqi@0 363 Constants.ATTR_USE,
aoqi@0 364 use);
aoqi@0 365 }
aoqi@0 366 }
aoqi@0 367
aoqi@0 368 String namespace =
aoqi@0 369 XmlUtil.getAttributeOrNull(e, Constants.ATTR_NAMESPACE);
aoqi@0 370 if (namespace != null) {
aoqi@0 371 fault.setNamespace(namespace);
aoqi@0 372 }
aoqi@0 373
aoqi@0 374 String encodingStyle =
aoqi@0 375 XmlUtil.getAttributeOrNull(e, Constants.ATTR_ENCODING_STYLE);
aoqi@0 376 if (encodingStyle != null) {
aoqi@0 377 fault.setEncodingStyle(encodingStyle);
aoqi@0 378 }
aoqi@0 379
aoqi@0 380 parent.addExtension(fault);
aoqi@0 381 context.pop();
aoqi@0 382 // context.fireDoneParsingEntity(getFaultQName(), fault);
aoqi@0 383 return true;
aoqi@0 384 } else if (XmlUtil.matchesTagNS(e, getHeaderQName())) {
aoqi@0 385 // although SOAP spec doesn't define meaning of this extension; it is allowed
aoqi@0 386 // to be here, so we have to accept it, not fail (bug 13576977)
aoqi@0 387 return handleHeaderElement(parent, e, (TWSDLParserContextImpl) context);
aoqi@0 388 } else {
aoqi@0 389 Util.fail(
aoqi@0 390 "parsing.invalidExtensionElement",
aoqi@0 391 e.getTagName(),
aoqi@0 392 e.getNamespaceURI());
aoqi@0 393 return false; // keep compiler happy
aoqi@0 394 }
aoqi@0 395 }
aoqi@0 396
aoqi@0 397 public boolean handleServiceExtension(
aoqi@0 398 TWSDLParserContext context,
aoqi@0 399 TWSDLExtensible parent,
aoqi@0 400 Element e) {
aoqi@0 401 Util.fail(
aoqi@0 402 "parsing.invalidExtensionElement",
aoqi@0 403 e.getTagName(),
aoqi@0 404 e.getNamespaceURI());
aoqi@0 405 return false; // keep compiler happy
aoqi@0 406 }
aoqi@0 407
aoqi@0 408 @Override
aoqi@0 409 public boolean handlePortExtension(
aoqi@0 410 TWSDLParserContext context,
aoqi@0 411 TWSDLExtensible parent,
aoqi@0 412 Element e) {
aoqi@0 413 if (XmlUtil.matchesTagNS(e, getAddressQName())) {
aoqi@0 414 context.push();
aoqi@0 415 context.registerNamespaces(e);
aoqi@0 416
aoqi@0 417 SOAPAddress address = new SOAPAddress(context.getLocation(e));
aoqi@0 418
aoqi@0 419 String location =
aoqi@0 420 Util.getRequiredAttribute(e, Constants.ATTR_LOCATION);
aoqi@0 421 address.setLocation(location);
aoqi@0 422
aoqi@0 423 parent.addExtension(address);
aoqi@0 424 context.pop();
aoqi@0 425 // context.fireDoneParsingEntity(getAddressQName(), address);
aoqi@0 426 return true;
aoqi@0 427 } else {
aoqi@0 428 Util.fail(
aoqi@0 429 "parsing.invalidExtensionElement",
aoqi@0 430 e.getTagName(),
aoqi@0 431 e.getNamespaceURI());
aoqi@0 432 return false; // keep compiler happy
aoqi@0 433 }
aoqi@0 434 }
aoqi@0 435
aoqi@0 436 public boolean handlePortTypeExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) {
aoqi@0 437 Util.fail(
aoqi@0 438 "parsing.invalidExtensionElement",
aoqi@0 439 e.getTagName(),
aoqi@0 440 e.getNamespaceURI());
aoqi@0 441 return false; // keep compiler happy
aoqi@0 442 }
aoqi@0 443
aoqi@0 444 protected QName getBodyQName(){
aoqi@0 445 return SOAPConstants.QNAME_BODY;
aoqi@0 446 }
aoqi@0 447
aoqi@0 448 protected QName getHeaderQName(){
aoqi@0 449 return SOAPConstants.QNAME_HEADER;
aoqi@0 450 }
aoqi@0 451
aoqi@0 452 protected QName getHeaderfaultQName(){
aoqi@0 453 return SOAPConstants.QNAME_HEADERFAULT;
aoqi@0 454 }
aoqi@0 455
aoqi@0 456 protected QName getOperationQName(){
aoqi@0 457 return SOAPConstants.QNAME_OPERATION;
aoqi@0 458 }
aoqi@0 459
aoqi@0 460 protected QName getFaultQName(){
aoqi@0 461 return SOAPConstants.QNAME_FAULT;
aoqi@0 462 }
aoqi@0 463
aoqi@0 464 protected QName getAddressQName(){
aoqi@0 465 return SOAPConstants.QNAME_ADDRESS;
aoqi@0 466 }
aoqi@0 467
aoqi@0 468 protected QName getBindingQName(){
aoqi@0 469 return SOAPConstants.QNAME_BINDING;
aoqi@0 470 }
aoqi@0 471 }

mercurial