com.ibm.di.fc.webservice.util
Class WebServiceCall

java.lang.Object
  extended by org.apache.axis.client.Call
      extended by com.ibm.di.fc.webservice.util.WebServiceCall
All Implemented Interfaces:
javax.xml.rpc.Call

public class WebServiceCall
extends org.apache.axis.client.Call

This class defines APIs that can be accessed over network.


Field Summary
static java.lang.String ENCODING_LATIN_1
          standard character encoding of the Latin alphabet
static java.lang.String ENCODING_UTF8
          variable-length character encoding for Unicode
static int INITIAL_BUFFER_SIZE
          constant to set the default buffer size
 
Fields inherited from class org.apache.axis.client.Call
ATTACHMENT_ENCAPSULATION_FORMAT, ATTACHMENT_ENCAPSULATION_FORMAT_DIME, ATTACHMENT_ENCAPSULATION_FORMAT_MIME, ATTACHMENT_ENCAPSULATION_FORMAT_MTOM, attachmentParts, CHARACTER_SET_ENCODING, CHECK_MUST_UNDERSTAND, CONNECTION_TIMEOUT_PROPERTY, entLog, FAULT_ON_NO_RESPONSE, JAXRPC_PORTTYPE_NAME, JAXRPC_SERVICE, log, ONE_WAY, SEND_TYPE_ATTR, STREAMING_PROPERTY, TRANSPORT_NAME, TRANSPORT_PROPERTY, WSDL_PORT_NAME, WSDL_SERVICE
 
Fields inherited from interface javax.xml.rpc.Call
ENCODINGSTYLE_URI_PROPERTY, OPERATION_STYLE_PROPERTY, PASSWORD_PROPERTY, SESSION_MAINTAIN_PROPERTY, SOAPACTION_URI_PROPERTY, SOAPACTION_USE_PROPERTY, USERNAME_PROPERTY
 
Constructor Summary
WebServiceCall(org.apache.axis.client.Service aService, javax.xml.namespace.QName aPortQN, java.lang.String aSoapOperation, Log aLog)
          Class constructor
WebServiceCall(java.lang.String url, Log aLog)
          Class constructor
 
Method Summary
 void addHeader(org.apache.axis.message.SOAPHeaderElement header)
           
static java.lang.String callSoap(java.lang.String aWebServiceURL, java.lang.String aSoapRequest, java.lang.String aSoapActionURI)
          This method gives the chance to invoke callSOAP method without providing basic authentication
static java.lang.String callSoap(java.lang.String aWebServiceURL, java.lang.String aSoapRequest, java.lang.String aSoapActionURI, java.lang.String aBasicAuth)
          This method establishes request/response connection http connection to the provided url
 void clearHeaders()
           
static java.util.Vector convertComplexTypeList(java.lang.String aString)
          Returns Vector, which contains the type information for the tokens of the calling argument
static java.lang.String[] convertOperationParams(java.lang.String aList)
          The method splits the operations from one String into an array of Strings
static org.apache.axis.client.Service createService(java.lang.String wsdlDoc, javax.xml.namespace.QName serviceName)
          Creates new Service object.
static org.apache.axis.client.Service createService(java.lang.String wsdlDoc, javax.xml.namespace.QName serviceName, java.lang.String username, java.lang.String password)
           
static WebServiceCall createWebServiceCall(java.lang.String aWsdlUrl, javax.xml.namespace.QName aServiceQN, javax.xml.namespace.QName aPortQN, java.lang.String aSoapOperation, Log aLog)
          Creates new WebServiceCall object
 java.lang.String generateSOAP(java.util.Vector aClasses, java.lang.Object[] aParams, boolean aIsRequest)
          Creates the SOAP protocol for exchanging XML-messages
static org.w3c.dom.Element getAsDOM(java.lang.String aString)
          Converts the input argument into Element object
static java.lang.String getAsString(org.w3c.dom.Node aNode)
          Converts the input Node element into String
static java.lang.String getChildNodesAsString(org.w3c.dom.Node aNode)
          This method returns String , holding the child elements of the input Node.
static java.lang.String getJavaEncoding(java.lang.String aContentType)
          This method returns the encoding type
 java.util.HashMap getOutParams()
          Retrieves out parameters.
static ResourceHash getResHash()
          Returns a NLS Property set which holds all the translated values in the current language.
 javax.xml.namespace.QName getReturnParamQName()
          Returns the value of a QName containing a Namespace URI, local name and prefix
static java.util.Vector getSoapHeaderAndBodyAsDOM(java.lang.String aSoapMsg)
          Converts the SOAP message into DOM format
 java.lang.String getSoapString(org.apache.axis.message.RPCElement body)
          This method returns a String representation of the Message from the input SOAP body
static int min(int a, int b)
          This method returns the smaller of two numbers
static java.lang.String objectArrayToString(java.lang.Object[] aObjArray)
          This method converts an input array of objects in the following String format: [obj1 , obj2 , ...
 java.lang.Object parseSOAP(java.lang.String aSoapMsgString, java.util.Vector aClasses, java.lang.String aMsgType)
          Parses a SOAP message
static java.lang.String readHttpContent(java.io.InputStream aInputStream, java.lang.String aContentType, int aContentLength)
          Reads a specific amount of information from the InputStream and returns the content as String
static java.lang.String readHttpContentNoContentLength(java.io.InputStream aInputStream, java.lang.String aContentType)
          Reads the information from the InputStream and returns the content as String
 void registerClassMapping(org.apache.axis.MessageContext aMsgCtx, java.lang.Class aClass)
          Registers a class mapping .
 void registerCustomTypeMapping(java.lang.Class javaType, javax.xml.namespace.QName xmlType, javax.xml.rpc.encoding.SerializerFactory serializerFactory, javax.xml.rpc.encoding.DeserializerFactory deserializerFactory)
          Records a type mapping to be used by the 'parseSOAP' method.
static byte[] resizeByteArray(byte[] aByteArray, int aNewSize)
          Changes the size of a byte array
 
Methods inherited from class org.apache.axis.client.Call
addAttachmentPart, addFault, addParameter, addParameter, addParameter, addParameter, addParameterAsHeader, addParameterAsHeader, addTransportPackage, clearOperation, getEncodingStyle, getMaintainSession, getMessageContext, getOperation, getOperationName, getOperationStyle, getOperationUse, getOutputParams, getOutputValues, getParameterTypeByName, getParameterTypeByQName, getPassword, getPortName, getPortTypeName, getProperty, getPropertyNames, getResponseMessage, getReturnType, getService, getSOAPActionURI, getStreaming, getTargetEndpointAddress, getTimeout, getTransportForProtocol, getTypeMapping, getUsername, initialize, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invokeOneWay, isParameterAndReturnSpecRequired, isPropertySupported, registerTypeMapping, registerTypeMapping, registerTypeMapping, registerTypeMapping, removeAllParameters, removeProperty, setClientHandlers, setEncodingStyle, setMaintainSession, setOperation, setOperation, setOperation, setOperation, setOperationName, setOperationName, setOperationStyle, setOperationStyle, setOperationUse, setOperationUse, setOption, setPassword, setPortName, setPortTypeName, setProperty, setRequestMessage, setReturnClass, setReturnQName, setReturnType, setReturnType, setReturnTypeAsHeader, setReturnTypeAsHeader, setSOAPActionURI, setSOAPService, setSOAPVersion, setStreaming, setTargetEndpointAddress, setTargetEndpointAddress, setTimeout, setTransport, setTransportForProtocol, setUsername, setUseSOAPAction, useSOAPAction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENCODING_LATIN_1

public static final java.lang.String ENCODING_LATIN_1
standard character encoding of the Latin alphabet

See Also:
Constant Field Values

ENCODING_UTF8

public static final java.lang.String ENCODING_UTF8
variable-length character encoding for Unicode

See Also:
Constant Field Values

INITIAL_BUFFER_SIZE

public static final int INITIAL_BUFFER_SIZE
constant to set the default buffer size

See Also:
Constant Field Values
Constructor Detail

WebServiceCall

public WebServiceCall(org.apache.axis.client.Service aService,
                      javax.xml.namespace.QName aPortQN,
                      java.lang.String aSoapOperation,
                      Log aLog)
               throws java.lang.Exception
Class constructor

Parameters:
aService - String
aPortQN - QName
aSoapOperation - String
aLog - Log
Throws:
java.lang.Exception - if the arguments are not valid

WebServiceCall

public WebServiceCall(java.lang.String url,
                      Log aLog)
               throws java.net.MalformedURLException
Class constructor

Parameters:
url - String
aLog - Log
Throws:
java.net.MalformedURLException - If the string specifies an unknown protocol.
Method Detail

getResHash

public static ResourceHash getResHash()
Returns a NLS Property set which holds all the translated values in the current language.

Returns:
ResourceHash

getReturnParamQName

public javax.xml.namespace.QName getReturnParamQName()
Returns the value of a QName containing a Namespace URI, local name and prefix

Returns:
QName

createWebServiceCall

public static WebServiceCall createWebServiceCall(java.lang.String aWsdlUrl,
                                                  javax.xml.namespace.QName aServiceQN,
                                                  javax.xml.namespace.QName aPortQN,
                                                  java.lang.String aSoapOperation,
                                                  Log aLog)
                                           throws java.lang.Exception
Creates new WebServiceCall object

Parameters:
aWsdlUrl - String
aServiceQN - QName
aPortQN - QName
aSoapOperation - String
aLog -
Returns:
new WebServiceCall Object
Throws:
java.lang.Exception

createService

public static org.apache.axis.client.Service createService(java.lang.String wsdlDoc,
                                                           javax.xml.namespace.QName serviceName)
                                                    throws java.lang.Exception
Creates new Service object.

Parameters:
wsdlDoc - String
serviceName - QName
Returns:
Service object
Throws:
java.lang.Exception - if the the arguments are not valid

createService

public static org.apache.axis.client.Service createService(java.lang.String wsdlDoc,
                                                           javax.xml.namespace.QName serviceName,
                                                           java.lang.String username,
                                                           java.lang.String password)
                                                    throws java.lang.Exception
Throws:
java.lang.Exception

convertComplexTypeList

public static java.util.Vector convertComplexTypeList(java.lang.String aString)
                                               throws java.lang.ClassNotFoundException
Returns Vector, which contains the type information for the tokens of the calling argument

Parameters:
aString - String
Returns:
Vector
Throws:
java.lang.ClassNotFoundException

getAsDOM

public static org.w3c.dom.Element getAsDOM(java.lang.String aString)
                                    throws java.lang.Exception
Converts the input argument into Element object

Parameters:
aString - String
Returns:
Element
Throws:
java.lang.Exception - if somewhere occurs an error

getAsString

public static java.lang.String getAsString(org.w3c.dom.Node aNode)
                                    throws java.lang.Exception
Converts the input Node element into String

Parameters:
aNode - Node
Returns:
String
Throws:
java.lang.Exception - if null is pass, or error during the transforming occurs

generateSOAP

public java.lang.String generateSOAP(java.util.Vector aClasses,
                                     java.lang.Object[] aParams,
                                     boolean aIsRequest)
                              throws java.lang.Exception
Creates the SOAP protocol for exchanging XML-messages

Parameters:
aClasses - Vector
aParams - Array of objects , parameter list
aIsRequest - boolean , indicates whether the call is a request or response
Returns:
String , the name of the operation
Throws:
java.lang.Exception - if error occurs

clearHeaders

public void clearHeaders()
Overrides:
clearHeaders in class org.apache.axis.client.Call

addHeader

public void addHeader(org.apache.axis.message.SOAPHeaderElement header)
Overrides:
addHeader in class org.apache.axis.client.Call

getSoapString

public java.lang.String getSoapString(org.apache.axis.message.RPCElement body)
                               throws java.lang.Exception
This method returns a String representation of the Message from the input SOAP body

Parameters:
body - RPCElement
Returns:
String
Throws:
java.lang.Exception

getOutParams

public java.util.HashMap getOutParams()
Retrieves out parameters.

Returns:
a HashMap with the out parameters

registerCustomTypeMapping

public void registerCustomTypeMapping(java.lang.Class javaType,
                                      javax.xml.namespace.QName xmlType,
                                      javax.xml.rpc.encoding.SerializerFactory serializerFactory,
                                      javax.xml.rpc.encoding.DeserializerFactory deserializerFactory)
Records a type mapping to be used by the 'parseSOAP' method. Note: calling 'registerTypeMapping' on the WebServiceCall object will not affect the 'parseSOAP' method. So use this method instead.

Parameters:
javaType - Class type
xmlType - QName
serializerFactory - SerializerFactory
deserializerFactory - DeserializerFactory

parseSOAP

public java.lang.Object parseSOAP(java.lang.String aSoapMsgString,
                                  java.util.Vector aClasses,
                                  java.lang.String aMsgType)
                           throws java.lang.Exception
Parses a SOAP message

Parameters:
aSoapMsgString - the SOAP Message
aClasses - - String , class type
aMsgType - - String , Message type for the Message
Returns:
the result of the parsing
Throws:
java.lang.Exception - : if error occurs

registerClassMapping

public void registerClassMapping(org.apache.axis.MessageContext aMsgCtx,
                                 java.lang.Class aClass)
                          throws java.lang.Exception
Registers a class mapping . Used by the parseSOAP method

Parameters:
aMsgCtx - MessageContext
aClass - Class type
Throws:
java.lang.Exception - if an error during mapping occurs

convertOperationParams

public static java.lang.String[] convertOperationParams(java.lang.String aList)
The method splits the operations from one String into an array of Strings

Parameters:
aList - String
Returns:
array of Strings

callSoap

public static java.lang.String callSoap(java.lang.String aWebServiceURL,
                                        java.lang.String aSoapRequest,
                                        java.lang.String aSoapActionURI)
                                 throws java.lang.Exception
This method gives the chance to invoke callSOAP method without providing basic authentication

Parameters:
aWebServiceURL - String
aSoapRequest - String
aSoapActionURI - String
Returns:
String
Throws:
java.lang.Exception
See Also:
callSoap(String, String, String, String)

callSoap

public static java.lang.String callSoap(java.lang.String aWebServiceURL,
                                        java.lang.String aSoapRequest,
                                        java.lang.String aSoapActionURI,
                                        java.lang.String aBasicAuth)
                                 throws java.lang.Exception
This method establishes request/response connection http connection to the provided url

Parameters:
aWebServiceURL - - String , the URL address
aSoapRequest - - String , the request
aSoapActionURI - - intent of the action String , SOAP URI
aBasicAuth - - String , authentication
Returns:
String , information for the received messages
Throws:
java.lang.Exception - , if some problem occurs

getSoapHeaderAndBodyAsDOM

public static java.util.Vector getSoapHeaderAndBodyAsDOM(java.lang.String aSoapMsg)
                                                  throws java.lang.Exception
Converts the SOAP message into DOM format

Parameters:
aSoapMsg - String representation of the soap message, used to create new Message
Returns:
Vector , that holds the body and header elements of the message
Throws:
java.lang.Exception - , if the required information cannot be retrieved

objectArrayToString

public static java.lang.String objectArrayToString(java.lang.Object[] aObjArray)
This method converts an input array of objects in the following String format: [obj1 , obj2 , ... ]

Parameters:
aObjArray - array of objects
Returns:
String

getChildNodesAsString

public static java.lang.String getChildNodesAsString(org.w3c.dom.Node aNode)
                                              throws java.lang.Exception
This method returns String , holding the child elements of the input Node.

Parameters:
aNode - Node
Returns:
String
Throws:
java.lang.Exception - if the passed Node is null

readHttpContent

public static java.lang.String readHttpContent(java.io.InputStream aInputStream,
                                               java.lang.String aContentType,
                                               int aContentLength)
                                        throws java.io.IOException
Reads a specific amount of information from the InputStream and returns the content as String

Parameters:
aInputStream - InputStream to be read
aContentType - type of data, so that the encoding style can be set
aContentLength - length of data to be read
Returns:
String
Throws:
java.io.IOException - , if error occurs during reading

min

public static int min(int a,
                      int b)
This method returns the smaller of two numbers

Parameters:
a - integer
b - integer
Returns:
integer

resizeByteArray

public static byte[] resizeByteArray(byte[] aByteArray,
                                     int aNewSize)
Changes the size of a byte array

Parameters:
aByteArray - byte array
aNewSize - integer
Returns:
the resized array

readHttpContentNoContentLength

public static java.lang.String readHttpContentNoContentLength(java.io.InputStream aInputStream,
                                                              java.lang.String aContentType)
                                                       throws java.io.IOException
Reads the information from the InputStream and returns the content as String

Parameters:
aInputStream - the InputStream
aContentType - type of data, so that the encoding style can be set
Returns:
String
Throws:
java.io.IOException - , if error occurs during reading

getJavaEncoding

public static java.lang.String getJavaEncoding(java.lang.String aContentType)
This method returns the encoding type

Parameters:
aContentType - String
Returns:
- String ,null if argument has null value , the specified encoding style or the default unicode encryption