[sakai-pmc] Proposal - Remove Axis Web services from Sakai

Neal Caidin neal.caidin at apereo.org
Fri Nov 21 07:49:05 PST 2014


Okay, we had some good discussion. Now for the proposal!

Proposal:
Permanently remove Axis web services from Sakai [1] , replacing with CXF
[2] .

Rationale:
Apache Axis 1.4 hasn't been updated in about 8 years, and several of us
have run into annoying problems with Axis1 especially compilation issues
while the web services are being accessed during a restart.

At Apereo Unconf in Phoenix, the possibility was mentioned of creating
stubs for all existing methods (except method overrides) in CXF using
wsdl2java. Then several of us volunteered to help out and move old code
into a new CXF project.

We want to reserve the use of rpc style webservices to help with legacy
support. Soap encoding is no longer supported by any modern framework out
there but our testing has shown the rpc/literal style which CXF does
support appears to work with legacy client code (at least what we've
tested). In addition since exposing the same logic as Rest is trivial
(simple annotations) we are doing that as well. This way any new client
code can use that method. In theory switching over to using this should
only require that clients update the wsdl location (or even some rewrite
rules in your load balancer could do that), and then deal with any method
names that might be different now because overloading of names is not
allowed.

Implications:

You will be able to continue using webservices (with the same name and
parameters) with perl-soap with very, very minor changes needed in your
part.

The sakai connector portlet will need to be updated.


More technical details details:

The endpoints follow this convention, prefix soap in path to get
rpc/liternal services, /rest to get the rest style:


So http://localhost:8080/sakai-axis/SakaiScript.jws?wsdl now becomes:


http://localhost:8080/sakai-ws/soap/sakai?wsdl


a rest call might be like this:


http://localhost:8080/sakai-ws/rest/sakai/addNewUser?sessionid=40d2075f-a3d9-4a3f-b93f-f61df97e07d9&eid=blah&=firstname=john&lastname=bush&email=asdf@asdfasdfasdf.com&type=registered&password=yourmom



append the service name + method name (case sensitive) and then pass in
params as query parameters. We need to do some work to support http status
codes and maybe json vs xml in rest services, but that is easy with cxf
from here on out.


Full wsdl list:

http://localhost:8080/sakai-ws/soap/sakai?wsdl

http://localhost:8080/sakai-ws/soap/shortenedurl?wsdl

http://localhost:8080/sakai-ws/soap/assignments?wsdl

http://localhost:8080/sakai-ws/soap/contenthosting?wsdl

http://localhost:8080/sakai-ws/soap/messageforums?wsdl

http://localhost:8080/sakai-ws/soap/job?wsdl

http://localhost:8080/sakai-ws/soap/login?wsdl

http://localhost:8080/sakai-ws/soap/testsandquizzes?wsdl

http://localhost:8080/sakai-ws/soap/portallogin?wsdl

The RemoteHostFilter is still on all calls so this stuff is secured in the
same was axis was via webservices.allow properties. To enable broadly for
development:

webservices.allowlogin=true

webservices.allow = .*

Community input and Decision making:
A material objection raised by a Sakai PMC member will block this
proposal.  Other opinions are welcome, indeed encouraged.  Silence equals
consent. Input must be received by Wednesday, November 26, 2014, close of
business, your time zone.

[1] Remove Axis - https://jira.sakaiproject.org/browse/SAK-28043

[2] CXF - https://jira.sakaiproject.org/browse/SAK-25678
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-pmc/attachments/20141121/6abfc617/attachment.html 


More information about the sakai-pmc mailing list