001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, 013 * software distributed under the License is distributed on an 014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 015 * KIND, either express or implied. See the License for the 016 * specific language governing permissions and limitations 017 * under the License. 018 */ 019 package javax.xml.soap; 020 021 /** 022 * A point-to-point connection that a client can use for sending messages directly to a remote party 023 * (represented by a URL, for instance). 024 * <p/> 025 * A client can obtain a <code>SOAPConnection</code> object simply by calling the following static 026 * method. 027 * <pre> 028 * <p/> 029 * SOAPConnection con = SOAPConnection.newInstance(); 030 * </pre> 031 * A <code>SOAPConnection</code> object can be used to send messages directly to a URL following the 032 * request/response paradigm. That is, messages are sent using the method <code>call</code>, which 033 * sends the message and then waits until it gets a reply. 034 */ 035 public abstract class SOAPConnection { 036 037 public SOAPConnection() { 038 } 039 040 /** 041 * Sends the given message to the specified endpoint and blocks until it has returned the 042 * response. 043 * 044 * @param request the <CODE>SOAPMessage</CODE> object to be sent 045 * @param endpoint an <code>Object</code> that identifies where the message should be sent. It 046 * is required to support Objects of type <code>java.lang.String</code>, 047 * <code>java.net.URL</code>, and when JAXM is present <code>javax.xml.messaging.URLEndpoint</code> 048 * @return the <CODE>SOAPMessage</CODE> object that is the response to the message that was 049 * sent 050 * @throws SOAPException if there is a SOAP error 051 */ 052 public abstract SOAPMessage call(SOAPMessage request, Object endpoint) 053 throws SOAPException; 054 055 /** 056 * Closes this <CODE>SOAPConnection</CODE> object. 057 * 058 * @throws SOAPException if there is a SOAP error 059 */ 060 public abstract void close() throws SOAPException; 061 062 /** 063 * Gets a message from a specific endpoint and blocks until it receives, 064 * 065 * @param to - an Object that identifies where the request should be sent. Objects of type 066 * java.lang.String and java.net.URL must be supported. 067 * @return the SOAPMessage object that is the response to the get message request 068 * @throws SOAPException - if there is a SOAP error 069 */ 070 public SOAPMessage get(Object obj) 071 throws SOAPException { 072 throw new UnsupportedOperationException(); 073 } 074 }