Accessing JBilling SOAP Web Service

Setting up JBilling’s soap interface is not that easy and the documentation is not that completer.

Jbilling’s WSDL is located at:
http://localhost:8080/jboss-net/services/billing?wsdl
Note: jbilling’s default port is 80 but i have changed it to 8080. If you are using the default installation, change port to 80.

When you request this URL, jbilling will ask for username and password.
To our surprise even the main account that you created during the installation does not have SOAP access and the permission system is not through the GUI.
Well JBilling is not known for its ease of use and intuitive GUI.

We are going to create a new user with soap access rights from scratch.

Step 1: create a user:
Open JBilling user interface, from the top menu select “Users”, Second menu select “Staff” and from the left menu select “Create New User”.

Login Name: soap
Password: soap1234
Repeat Password: soap1234
Email: soap@osintegra.com
Type: Clerk
Currency: United States Dollars

2. Set Permissions:

Login to your MySQL Server.

parham@exotix:~$ mysql -ujbilling -pjbilling jbilling
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 257
Server version: 5.0.67-0ubuntu6 (Ubuntu)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>

Look up your soap user in the database.

mysql> select * from base_user where user_name=’soap’\G;
*************************** 1. row ***************************
id: 20
entity_id: 1
password: 6320ea64269dc4d57ef0c1a1f59b394f
deleted: 0
language_id: 1
status_id: 1
subscriber_status: 6
currency_id: 1
create_datetime: 2009-03-14 12:07:18
last_status_change: 2009-03-14 12:07:18
last_login: 2009-03-14 12:07:18
user_name: soap
failed_attempts: 0
OPTLOCK: 1
1 row in set (0.00 sec)

ERROR:
No query specified

as you see soap user’s id is 20

Now check soap user’s role:

mysql> select * from user_role_map where user_id=20;
+———+———+
| user_id | role_id |
+———+———+
|      20 |       3 |
+———+———+
1 row in set (0.00 sec)

mysql>

if soap has any other role other then 2, change it to 2.

mysql> update user_role_map set role_id=2 where user_id=20;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Add user permission to SOAP user. Soap permission_id is 120.

since my  permission_user table was empty, i just inserted with id=1.

mysql> insert into permission_user(permission_id,user_id,is_grant,id) values(120,20,1,1);
Query OK, 1 row affected (0.00 sec)

mysql>

Now go back to jbilling wsdl page:

http://localhost:8080/jboss-net/services/billing?wsdl

You should be able to see the wsdl file now.

Tags: , , , ,

8 Responses to “Accessing JBilling SOAP Web Service”

  1. Great work there man

  2. I really liked this post. Can I copy it to my site? Thank you in advance.

  3. Kelly Brown says:

    I really like your post. Does it copyright protected?

  4. Hi, very nice post. I have been wonder’n bout this issue,so thanks for posting

  5. GarykPatton says:

    I have been looking looking around for this kind of information. Will you post some more in future? I’ll be grateful if you will.

  6. parham says:

    sure, no problem … just link back to it please

  7. parham says:

    just link back to the page :)

  8. Lacy says:

    Pretty cool post. I just came by your site and wanted to say
    that I have really enjoyed browsing your posts. Anyway
    I’ll be subscribing to your feed and I hope you write again soon!

Leave a Reply