An OSGi plugin for iDempiere that provides the SOAP/REST webservice API (/ADInterface). This functionality was extracted from iDempiere core and is distributed as an optional plugin.
This plugin exposes iDempiere's CompositeService and ModelADService SOAP endpoints, built on top of Apache CXF and Spring. When installed, it registers with core via the OSGi Declarative Services interfaces IModelFactory and IProcessFactory - no changes to iDempiere core are required.
Default endpoint: http://<host>:<port>/ADInterface/services
idempiere-soap/
├── pom.xml # Root aggregator (Tycho build)
├── org.idempiere.soap.parent/
│ └── pom.xml # Tycho config, target platform, P2 repos
├── org.idempiere.webservice.client/ # Standalone Maven-to-P2 step (run before Tycho)
│ └── pom.xml
├── org.idempiere.webservices.resources/ # CXF servlet config, XSD schemas, Spring context
├── org.idempiere.webservices/ # Main SOAP bundle (Web-ContextPath: ADInterface)
├── org.idempiere.webservices-feature/ # Eclipse feature grouping all bundles + deps
└── org.idempiere.webservices.client-feature/ # Client-side feature (JAX-WS client libs)
| Bundle | Purpose |
|---|---|
org.idempiere.webservices |
Main OSGi web bundle. Hosts the SOAP endpoints, model classes (MWebService, MWebServiceType), and OSGi service registrations. Deployed at /ADInterface. |
org.idempiere.webservices.resources |
Helper bundle. Provides the CXF servlet config (cxf-servlet.xml), Spring ContextLoaderListener, and XSD schemas consumed by CXF at runtime. |
org.idempiere.webservices-feature |
Eclipse feature grouping the two bundles above plus all third-party dependencies: Apache CXF 3.6.3, Spring 5.3.27, Jersey 2.34, HK2 2.6.1, xmlbeans 5.0.3, jettison 1.5.4, and Jakarta WS/SOAP APIs. |
org.idempiere.webservices.client-feature |
Eclipse feature grouping the JAX-WS client libraries (jaxws-rt, JAXB-impl, SAAJ, GlassFish PFL, etc.) generated by the Maven-to-P2 step. |
org.idempiere.webservice.client |
Not a Tycho module. A standalone Maven build using the Reficio p2-maven-plugin to pull JAX-WS client JARs from Maven Central and wrap them as OSGi bundles. Must run before the main Tycho build. |
- Java 17+
- Maven 3.9+
- A built iDempiere core P2 repository (see iDempiere)
The build has two steps because org.idempiere.webservice.client generates a local P2 site that Tycho consumes.
This wraps Maven Central JARs (JAX-WS RI, JAXB, SAAJ, etc.) into OSGi bundles. Only needs to re-run when xml.ws.version or any artifact version in that POM changes.
cd org.idempiere.webservice.client
mvn p2:site
cd ..Output lands in org.idempiere.webservice.client/target/repository/.
mvn clean verifyBy default the build assumes iDempiere core is cloned as a sibling folder:
parent-folder/
├── idempiere/ ← iDempiere core (must be built first: mvn clean verify)
└── idempiere-soap/ ← this repo
To override the core P2 repository path:
mvn clean verify \
-Didempiere.core.repository.url=file:///absolute/path/to/idempiere/org.idempiere.p2/target/repositoryTo point to a remote P2 site (e.g., nightly build):
mvn clean verify \
-Didempiere.core.repository.url=https://jenkins.idempiere.org/job/iDempiere14/lastSuccessfulBuild/artifact/org.idempiere.p2/target/repositoryosgi> install file:///path/to/org.idempiere.webservices_14.0.0.jar
osgi> start <bundle-id>Point the director at the feature's P2 update site and install org.idempiere.webservices.feature:
./eclipse/director \
-repository https://your-p2-site/repository \
-installIU org.idempiere.webservices.feature \
-destination /path/to/idempiere/serverAfter installation, configure web services through the iDempiere Application Dictionary:
- Window:
Web Service(WS_WebService) - Window:
Web Service Type(WS_WebServiceType) - Process:
Web Service Type - Create Parameters
The database tables (WS_WebService, WS_WebServiceType, WS_WebServiceMethod, WS_WebService_Para, WS_WebServiceFieldInput, WS_WebServiceFieldOutput, WS_WebServiceTypeAccess) are created by the core migration scripts already present in iDempiere. No additional migration scripts are needed.
Verify the plugin is active by browsing to http://<host>:<port>/ADInterface/services -
you should see CompositeService and ModelADService listed with their WSDL links.
- Web Services Reference — full parameter reference for
ModelADServiceandCompositeServicemethods, login data requirements, and field-level documentation. - Web Services First Steps — beginner walkthrough: creating a Web Service Type in the Application Dictionary, testing with SoapUI, and sending requests via
curlandwget. - Web Services Security — how to configure roles, parameters (Free vs Constant), and access control on web service types.
- NF1.0 Web Services Improvements — background on the original extraction from ADempiere, migration from XFire to CXF, and the introduction of
CompositeService.
GPL v2 — same as iDempiere core.