|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.xins.common.manageable.Manageable org.xins.server.CallingConvention org.xins.server.SOAPCallingConvention org.xins.server.SOAPMapCallingConvention
The SOAP calling convention that tries to map the SOAP request to the parameters of the function. The rules applied for the mapping are the same as for the command wsdl-to-api.
Note that by default any SOAP message will be handled by the _xins_soap calling convention. If you want to use this calling convention you will need to explicitly have _convention=_xins_soap_map in the URL parameters. This calling convention is easily extendable in order to adapt to the specificity of your SOAP requests. Here is the mapping for the input:
Nested Class Summary |
Nested classes inherited from class org.xins.common.manageable.Manageable |
Manageable.State |
Field Summary | |
protected static String |
REQUEST_BODY
The key used to store the Body element of the request. |
protected static String |
REQUEST_ENVELOPE
The key used to store the Envelope element of the request. |
protected static String |
REQUEST_FUNCTION
The key used to store the function element of the request. |
Fields inherited from class org.xins.server.SOAPCallingConvention |
FUNCTION_NAME, REQUEST_NAMESPACE, RESPONSE_CONTENT_TYPE, RESPONSE_ENCODING |
Fields inherited from class org.xins.common.manageable.Manageable |
BOOTSTRAPPED, BOOTSTRAPPING, DEINITIALIZING, INITIALIZING, UNUSABLE, USABLE |
Constructor Summary | |
SOAPMapCallingConvention(API api)
Creates a new SOAPCallingConvention instance. |
Method Summary | |
protected FunctionRequest |
convertRequestImpl(HttpServletRequest httpRequest)
Converts an HTTP request to a XINS request (implementation method). |
protected void |
convertResultImpl(FunctionResult xinsResult,
HttpServletResponse httpResponse,
HttpServletRequest httpRequest)
Converts a XINS result to an HTTP response (implementation method). |
protected boolean |
matches(HttpServletRequest httpRequest)
Checks if the specified request can be handled by this calling convention. |
protected FunctionRequest |
readInput(Element functionElem,
String functionName)
Generates the function request based the the SOAP request. |
protected Element |
readInputElem(Element inputElem,
String functionName,
String parent,
Element parentElement,
BasicPropertyReader inputParams)
Parses the SOAP request element according to the rules specified in this class description. |
protected void |
setDataElementAttribute(ElementBuilder builder,
String attributeName,
String attributeValue,
String elementNameSpacePrefix)
Writes the attribute a output data element for the returned SOAP element. |
protected void |
writeOutputDataElement(Map dataSectionSpec,
Element dataElement,
Element parent)
Write the given output data element in the SOAP response. |
protected void |
writeOutputDataSection(String functionName,
FunctionResult xinsResult,
Element response)
Writes the output data section to the SOAP XML. |
protected void |
writeOutputParameter(String parameterName,
String parameterValue,
Element parent)
Write an output parameter to the SOAP response. |
protected void |
writeOutputParameters(String functionName,
FunctionResult xinsResult,
Element response)
Writes the output parameters to the SOAP XML. |
protected Element |
writeResponse(HttpServletRequest httpRequest,
FunctionResult xinsResult)
|
Methods inherited from class org.xins.server.SOAPCallingConvention |
getAPI, getSupportedMethods, getSupportedMethods, parseXMLRequest, parseXMLRequest, readDataSection, readInputParameters, soapElementTransformation, soapInputValueTransformation, soapOutputValueTransformation, writeFaultSection, writeOutputDataSection, writeOutputParameters |
Methods inherited from class org.xins.common.manageable.Manageable |
assertUsable, bootstrap, bootstrapImpl, deinit, deinitImpl, getState, init, initImpl, isBootstrapped, isUsable |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static final String REQUEST_ENVELOPE
protected static final String REQUEST_BODY
protected static final String REQUEST_FUNCTION
Constructor Detail |
public SOAPMapCallingConvention(API api) throws IllegalArgumentException
SOAPCallingConvention
instance.
api
- the API, needed for the SOAP messages, cannot be null
.
IllegalArgumentException
- if api == null
.Method Detail |
protected boolean matches(HttpServletRequest httpRequest) throws Exception
SOAPCallingConvention
This method will not throw any exception.
matches
in class SOAPCallingConvention
httpRequest
- the HTTP request to investigate, cannot be null
.
true
if this calling convention is possibly
able to handle this request, or false
if it
definitely not able to handle this request.
Exception
- if analysis of the request causes an exception;
false
will be assumed.protected FunctionRequest convertRequestImpl(HttpServletRequest httpRequest) throws InvalidRequestException, FunctionNotSpecifiedException
org.xins.server.CallingConvention
httpRequest
argument is not null
;
CallingConvention.getSupportedMethods()
.
Note that CallingConvention.getSupportedMethods(HttpServletRequest)
will not
have been called prior to this method call.
convertRequestImpl
in class SOAPCallingConvention
InvalidRequestException
FunctionNotSpecifiedException
protected FunctionRequest readInput(Element functionElem, String functionName)
functionElem
- the SOAP element of the function request, cannot be null
.functionName
- the name of the function, cannot be null
.
null
.protected Element readInputElem(Element inputElem, String functionName, String parent, Element parentElement, BasicPropertyReader inputParams) throws Exception
inputElem
- the SOAP request element, cannot be null
.functionName
- the name of the function, cannot be null
.parent
- the name of the super element, can be null
.parentElement
- the input data element that is being created, can be null
.inputParams
- the PropertyReader where the input parameters should be stored, cannot be null
.
null
if the SOAP
request does not need to create a input data element.
Exception
- if anything goes wrong such specifications not available or incorrect SOAP request.protected void convertResultImpl(FunctionResult xinsResult, HttpServletResponse httpResponse, HttpServletRequest httpRequest) throws IOException
org.xins.server.CallingConvention
null
.
convertResultImpl
in class SOAPCallingConvention
IOException
protected Element writeResponse(HttpServletRequest httpRequest, FunctionResult xinsResult) throws IOException
IOException
protected void writeOutputParameters(String functionName, FunctionResult xinsResult, Element response)
functionName
- the name of the function called, cannot be null
.xinsResult
- the result of the call to the function, cannot be null
.response
- the SOAP response element, cannot be null
.protected void writeOutputParameter(String parameterName, String parameterValue, Element parent)
parameterName
- the name of the output parameter, cannot be null
.parameterValue
- the value of the output parameter, cannot be null
.parent
- the parent element to put the created element in, cannot be null
.protected void writeOutputDataSection(String functionName, FunctionResult xinsResult, Element response)
functionName
- the name of the function called.xinsResult
- the result of the call to the function.response
- the SOAP response element, cannot be null
.protected void writeOutputDataElement(Map dataSectionSpec, Element dataElement, Element parent)
dataSectionSpec
- the specification of the output data elements for the function, cannot be null
.dataElement
- the data element to tranform as SOAP element, cannot be null
.parent
- the parent element to add the created element, cannot be null
.protected void setDataElementAttribute(ElementBuilder builder, String attributeName, String attributeValue, String elementNameSpacePrefix)
SOAPCallingConvention
setDataElementAttribute
in class SOAPCallingConvention
builder
- the builder used to create the SOAP Element, cannot be null
.attributeName
- the name of the attribute, cannot be null
.attributeValue
- the value of the attribute, cannot be null
.elementNameSpacePrefix
- the namespace prefix of the parent element, can be null
.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |