A RESTful API servlet for managing IBM i Web Services servers and services.
This project provides a modern REST API interface to the IBM Web Services Administration Script Processor (iwsadmin.jar), with interactive Scalar API documentation.
- ✅ RESTful API design (proper HTTP methods)
- ✅ JSON responses
- ✅ OpenAPI 3.0 specification
- ✅ Interactive Scalar API documentation
- ✅ Java 21 LTS
- Java 21 or later
- Maven 3.8+
- IBM i Web Services JARs:
iwsadmin.jar- Web Services Admin Scriptsiasadmin.jar- IAS Admin Library
wsadmin/
├── pom.xml
├── lib/
│ ├── iwsadmin.jar
│ └── iasadmin.jar
└── src/main/
├── java/com/ibm/systemi/iws/servlet/
│ ├── RestApiServlet.java # REST API
│ └── ScriptProcessorServlet.java # Legacy script interface
└── webapp/
├── index.html # Scalar API docs
├── openapi.json # OpenAPI spec
└── WEB-INF/web.xml
# Set Java 21
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
# Build
mvn clean package
# WAR file: target/wsadmin.warJAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 mvn jetty:run
# Access at: http://localhost:8080/wsadmin/| Method | Endpoint | Description |
|---|---|---|
GET |
/api/servers |
List all servers |
GET |
/api/servers/{name} |
Get server details |
POST |
/api/servers?name={name} |
Create a server |
DELETE |
/api/servers/{name} |
Delete a server |
POST |
/api/servers/{name}/start |
Start a server |
POST |
/api/servers/{name}/stop |
Stop a server |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/servers/{server}/services |
List services |
GET |
/api/servers/{server}/services/{name} |
Get service details |
POST |
/api/servers/{server}/services?name={n}&pcml={p} |
Install service |
DELETE |
/api/servers/{server}/services/{name} |
Uninstall service |
POST |
/api/servers/{server}/services/{name}/start |
Start service |
POST |
/api/servers/{server}/services/{name}/stop |
Stop service |
curl http://localhost:8080/wsadmin/api/serverscurl http://localhost:8080/wsadmin/api/servers/MYSERVERcurl -X POST http://localhost:8080/wsadmin/api/servers/MYSERVER/startcurl http://localhost:8080/wsadmin/api/servers/MYSERVER/servicescurl -X POST "http://localhost:8080/wsadmin/api/servers/MYSERVER/services?name=MyService&pcml=/path/to/file.pcml"curl -X POST http://localhost:8080/wsadmin/api/servers/MYSERVER/services/MyService/startcurl -X POST http://localhost:8080/wsadmin/api/servers/MYSERVER/services/MyService/stop
curl -X DELETE http://localhost:8080/wsadmin/api/servers/MYSERVER/services/MyServiceAll responses are JSON:
{
"success": true,
"server": "MYSERVER",
"count": 3,
"servers": [
{"name": "SERVER1"},
{"name": "SERVER2"},
{"name": "SERVER3"}
],
"raw": "... original command output ..."
}Interactive API documentation is available at the root URL using Scalar.
Access: http://localhost:8080/wsadmin/
Deploy target/wsadmin.war to any Jakarta EE 10 compatible server:
- Open Liberty
- WildFly
- Tomcat 10+
- Jetty 11+
This project wraps IBM proprietary libraries. Use in accordance with IBM licensing terms.