file-xmlSOAP Compat +

Premium SOAP webservices compatibility module for high-performance parsing and generation of delimited datasets in BoxLang+ applications.

triangle-exclamation

The bx-compat-soap module provides comprehensive SOAP (Simple Object Access Protocol) web services functionality for BoxLang applications. It provides Compatibility for existing CFML Axis-based web services functionality. This module enables you to create and manage SOAP-based web services with automatic WSDL generation, request/response handling, and full support for complex data types.

Features

  • 🌐 Automatic WSDL Generation - Generate standards-compliant WSDL documents from BoxLang classes

  • 🔄 SOAP Request/Response Handling - Parse and process SOAP envelopes with namespace support

  • 🎯 Type Coercion - Automatic type conversion between SOAP XML types and BoxLang types

  • 📋 Metadata Extraction - Extract function metadata for WSDL operation definitions

  • 🚀 Web Context Support - Full integration with BoxLang web request/response cycle

  • SOAPAction Routing - Automatic routing based on SOAPAction headers or XML body

Installation

Install the module using CommandBox:

box install bx-compat-soap

Usage

Creating a SOAP Web Service

To create a SOAP web service, simply create a BoxLang class with remote methods:

Accessing the WSDL

The WSDL is automatically generated and accessible via the ?wsdl parameter:

SOAP XML Request Format

Send SOAP requests to your service endpoint using standard SOAP envelope format:

SOAP Response Format

The service returns standard SOAP responses:

Error Handling (SOAP Faults)

Errors are returned as standard SOAP faults:

Consuming SOAP Web Services

Using createObject()

The easiest way to consume a SOAP web service is using BoxLang's createObject() function:

Advanced SOAP Client Usage

For more control over the SOAP request, you can configure the web service instance:

Handling SOAP Faults

SOAP faults are automatically converted to BoxLang exceptions:

Supported Data Types

Simple Types

  • stringxsd:string

  • numericxsd:double

  • booleanxsd:boolean

  • datexsd:dateTime

Complex Types

  • binaryxsd:base64Binary

  • structapachesoap:map or xsd:complexType

  • array → Array type with sequential items

  • anyxsd:anyType

Last updated

Was this helpful?