Class AbstractSoapClient<T>
java.lang.Object
org.projecthusky.xua.communication.clients.impl.AbstractSoapClient<T>
- Type Parameters:
T
- the type of the object
- Direct Known Subclasses:
SimpleArtifactResolveClient
,SimpleXuaClient
Abstract Class implementing a soap client based on httpclient.
Abstrakte Klasse welche einen SOAP Client implementiert auf Basis von Httpclient.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
createBody
(Element aBodyElement, Element envelopElement) creates body of soap message.protected Element
creates SOAP envelope.protected void
createHeader
(Element aSecurityHeaderElement, WsaHeaderValue wsHeaders, Element envelopElement) creates SOAP header.protected String
createXmlString
(Element aEnvelope) creates XML String from passed SOAP envelope.protected T
execute
(org.apache.http.client.methods.HttpPost post) sends soap message.protected String
extractResponse
(org.apache.http.HttpEntity responseEntity) protected byte[]
getBoundary
(String value) method to get the boundary bytes.protected SoapClientConfig
Method to get soap client configuration.protected org.apache.http.impl.client.CloseableHttpClient
Method to get HTTP client.protected org.apache.http.client.methods.HttpPost
Method to get HTTP Post with URI from configuration.protected org.slf4j.Logger
Method to get Logger.protected Node
Method to get Node of element with passed XPath expression.protected org.apache.http.client.config.RequestConfig
Method to get request configuration.protected Element
getResponseElement
(String content, String nameSpaceUri, String localName) Method to get response element asElement
from content.protected SoapException
getSoapException
(Node faultnode) Method to get soap exception of Axis2 fault Node.protected abstract T
parseResponse
(String content) Method to extract response from XML String.protected T
parseResponseError
(String content) Method to extract error from XML response.protected void
setConfig
(SoapClientConfig config) Method to set SOAP client configuration.protected void
setLogger
(org.slf4j.Logger logger) Method to set logger.
-
Constructor Details
-
AbstractSoapClient
public AbstractSoapClient()
-
-
Method Details
-
createBody
creates body of soap message.- Parameters:
aBodyElement
- body elementenvelopElement
- soap envelope element
-
createEnvelope
creates SOAP envelope.- Returns:
- created soap envelope
- Throws:
ParserConfigurationException
- will be thrown on error
-
createHeader
protected void createHeader(Element aSecurityHeaderElement, WsaHeaderValue wsHeaders, Element envelopElement) creates SOAP header.- Parameters:
aSecurityHeaderElement
- SOAP security header elementwsHeaders
- WSA headersenvelopElement
- soap envelope
-
createXmlString
creates XML String from passed SOAP envelope.- Parameters:
aEnvelope
- soap envelope- Returns:
- XML String
- Throws:
TransformerException
- will be thrown on transform errors
-
execute
protected T execute(org.apache.http.client.methods.HttpPost post) throws ClientSendException, IOException sends soap message.- Parameters:
post
- http post- Returns:
- response
- Throws:
ClientSendException
- will be thrown on errorsIOException
- will be thrown on errors
-
extractResponse
protected String extractResponse(org.apache.http.HttpEntity responseEntity) throws org.apache.http.ParseException, IOException - Throws:
org.apache.http.ParseException
IOException
-
getBoundary
method to get the boundary bytes.- Parameters:
value
- the value- Returns:
- the boundary as byte array
-
getConfig
Method to get soap client configuration.- Returns:
- the soap client configuration
-
getHttpClient
protected org.apache.http.impl.client.CloseableHttpClient getHttpClient() throws ClientSendExceptionMethod to get HTTP client. This HTTP client uses keystore details from configuration.- Returns:
- closeable HTTP client
- Throws:
ClientSendException
- will be thrown if an error occures.
-
getHttpPost
protected org.apache.http.client.methods.HttpPost getHttpPost()Method to get HTTP Post with URI from configuration. Application/soap+xml ist set as content type header.- Returns:
- the httppost instance
-
getLogger
protected org.slf4j.Logger getLogger()Method to get Logger.- Returns:
- the logger
-
getNode
Method to get Node of element with passed XPath expression.- Parameters:
element
- element to search inxPathExpression
- XPath expression- Returns:
- found node
- Throws:
XPathExpressionException
- will be thrown on error
-
getRequestConfig
protected org.apache.http.client.config.RequestConfig getRequestConfig()Method to get request configuration.- Returns:
- request configuration
-
getResponseElement
protected Element getResponseElement(String content, String nameSpaceUri, String localName) throws UnsupportedOperationException, XPathExpressionException, net.shibboleth.utilities.java.support.xml.XMLParserException Method to get response element asElement
from content. The passed local name and namespace is used to filter the response element.- Parameters:
content
- response as xmlnameSpaceUri
- namespacelocalName
- name of element- Returns:
- response element
- Throws:
UnsupportedOperationException
- will be thrown on errorXPathExpressionException
- will be thrown on errornet.shibboleth.utilities.java.support.xml.XMLParserException
- will be thrown on error
-
getSoapException
Method to get soap exception of Axis2 fault Node.- Parameters:
faultnode
- the fault node- Returns:
- extracted SOAP exception
-
parseResponse
Method to extract response from XML String.- Parameters:
content
- XML String- Returns:
- extracted element
- Throws:
ClientSendException
- will be thrown if an error occures.
-
parseResponseError
Method to extract error from XML response.- Parameters:
content
- XML String- Returns:
- extracted error
- Throws:
ClientSendException
- will be thrown if an error occures
-
setConfig
Method to set SOAP client configuration.- Parameters:
config
- the soap client configuration
-
setLogger
protected void setLogger(org.slf4j.Logger logger) Method to set logger.- Parameters:
logger
- the logger
-