Create Quality Web Services with New Book on Quickstart Apache

Discussions

News: Create Quality Web Services with New Book on Quickstart Apache

  1. Axis2 is an enterprise-ready web service engine that is very user friendly and provides web service interactions with a dynamic and flexible execution framework. Apache Axis2 is a core engine for web services with two implementations: Apache Axis2/Java and Apache Axis2/C. It is a complete redesign and rewrite of the widely used Apache Axis SOAP stack that builds on the lessons learned from the Apache Axis implementation of the SOAP submission to W3C. Apache Axis2 not only supports SOAP 1.1 and SOAP 1.2, but also has integrated support for the widely popular REST-style of web services. The same business logic implementation can offer both a WS-* style interface and a REST/POX style interface simultaneously. Apache Axis2 is more efficient, more modular, more scalable, and more XML-oriented than the older version. It is carefully designed to support the easy addition of plug-in modules that extend its functionality for features such as security and reliability. Apache Axis2 is built on Apache AXIOM, a new high performance, pull-based XML object model. This book is for Java developers who are interested in building web services using Apache Axis2. The book presumes that users are familiar with web standards like SOAP, WSDL and XML parsing. This book will take them through the basics of web services and Axis2 to the details of Axis2’s architecture. For more details on the book, please visit http://www.PacktPub.com/creating-web-services-with-apache-axis-2/book
  2. WS-*[ Go to top ]

    Does anyone know if the book goes over details/examples of implemented WS-* standards such as WS-Security?
  3. Re: WS-*[ Go to top ]

    It covers some aspects of ws-policy and ws-reliablemessaging but it does not cover rampart security (i.e. usernametoken, xml signing & encryption)
  4. If you use Spring and Axis2 to expose some methods of your Spring beans as Web services, what are your technical reasons that make you choose Axis2 over spring web services?
  5. Spring Web Services supports contract first Web services- start with a WSDL etc. and write your services. If you're happy with that approach then Spring Web Services is for you. Axis2 supports taking your POJO and making it into a service. WSF/Spring, WSO2's Web Service Framework for Spring (under Apache License 2.0), takes that a step further by allowing 100% completely Spring way to take a Spring bean and make it into a Web service. So its a choice between contract first vs. code first services. See: http://wso2.org/projects/wsf/spring Disclaimer: I'm one of the Axis2 authors and also founder and CEO of WSO2. Sanjiva. http://sanjiva.weerawarana.org/
  6. This book does discuss usage of security or reliable messaging in details. But gives a basic introduction to those ares. However the book covers how to implement your own extension , which the base of any of those implementations. blogs.deepal.org
  7. ...and why should I use Apache Axis2 over Apache CXF (it is easly integrated with Spring, and it is very easy to use and understand) ?
  8. Axis2's built in Web service support for Spring takes the approach that its on top and that Spring is only one way to make a Web service. What we did in WSF/Spring (WSO2 Web Services Framework for Spring) is to invert that and let Spring bring up Axis2 and its extension modules (to support security, RM, etc.) and support a trivially easy way to make a Spring bean into a Web service. There's also a Grails plugin that uses WSF/Spring and makes it trivially easy to make Web services with Grails. Since CXF and WSF/Spring have similar approaches I'd compare those two rather than Axis2 and CXF. I'm of course biased, but IMO WSF/Spring is much more complete on the WS-* front, performs better and overall much easier to use. WSF/Spring: http://wso2.org/projects/wsf/spring Grails plugin: http://docs.codehaus.org/display/GRAILS/Apache+Axis2+Plugin Sanjiva. http://sanjiva.weerawarana.org/
  9. I agree CXF(earlier XFire) and Spring is very easy to use and effective way of exposing POJI's as WebService. I recently did a project in which use combination of these two OSS to expose few POJI's as enterprise-level services. We have not explored security of WS* stack, so any comparison between CXF Vs WS02 shall be appreciated. However WS02, HelloWorld example,http://wso2.org/library/3208 exposes POJO as WS over POJI. So methods such as getName and setName are exposed as WS operations, is there way to avoid this via some configuration or using POJI ? Thanks Mittal
  10. I agree CXF(earlier XFire) and Spring is very easy to use and effective way of exposing POJI's as WebService. I recently did a project in which use combination of these two OSS to expose few POJI's as enterprise-level services. We have not explored security of WS* stack, so any comparison between CXF Vs WS02 shall be appreciated.

    However WS02, HelloWorld example,http://wso2.org/library/3208
    exposes POJO as WS over POJI. So methods such as getName and setName are exposed as WS operations, is there way to avoid this via some configuration or using POJI ?

    Thanks
    Mittal
    There is a property called "excludeOperations" which can be used to avoid certain methods getting exposed as service operations. .... .... .... .... Thanks Sanjaya
  11. Following two links will help you to get an idea how you excludes some methods in the POJO class when you exposing that as a Web service. http://wso2.org/library/2893 http://wso2.org/library/2060 blogs.deepal.org
  12. ...and why should I use Apache Axis2 over Apache CXF (it is easly integrated with Spring, and it is very easy to use and understand) ?
    And CXF is JAX-WS certified stack... I have quite a lot experience building enterprise services with CXF, and have found it just excellent. Of course it supports contract first, and code first approach. I know Axis2 also have some support for Spring, but CXF has spring in it's heart. Whole stack is (by default) wired by spring, thus You have access to various levels of support for CXF in spring. You can just wire Your endpoints to WS operations, You can wire JAX-WS handlers here, or Interceptors, finally the central point of CXF can also be accessed by spring. Even things like WS-Policy can be applied by spring (see how funny it is, with spring namespace support). And last, but not least CXF has VERY healthy community. Pleasant to work with. Artur
  13. Hi, I am trying to use CXF along with another standard webapp (Using spring) I configured CXF servlet in web.xml (/webservice/*) . When I call localhost:8080/webservice it says "No service was found". That means the CXF is active. I also see INFO: Creating Service ...... INFO: Setting the server's publish address to be /QCResulttest in the log so the service also created but I can't access that service. If you have any leads that will be great
  14. Yu can use [1] in order to compare Axis2 and CXF in terms of its features and WS-* support. [1] http://wiki.apache.org/ws/StackComparison Thanks, Keith. http://www.keith-chapman.org/
  15. I cannot comment much on ease of use cause I have not used CXF extensively. But I have used Axis2 a lot and for me its so convenient. Simple to write services and clients (Which includes doing complex stuff such as using WS-Security). The most important point is though the extensibility of Axis2. There are numerous ways that you can extend Axis2 (You name it you have it). Here are some extension points in Axis2, 1. Modules (You can easily extend the core functionality of Axis2 by dropping in a module. E.g Rampart for WS-Sec support) 2. Transports (Both incoming and outgoing transports are pluggable) 3. Message Builders and Message formatters (You can plug in any message format into Axis2 with ease. e.g: FastInfoset support in Axis2) 4. Deployers (Axis2 gives you support for custom Deployers. e.g JSDeployer [1] for JavaScript support in the WSO2 Mashup Server [2]) 5. Dispatchers (If the dispatching logic needed is custom for your case you can easily achieve it by dropping in a custom dispatcher) 6. MessageReceivers (This goes hand in hand with the deployers for e.g We have a JavaScriptMessageReceiver built for the Mashup Server which is JavaScript DataBinding aware and will take parameters off the SOAP message and inject into your JavaScript service) These are just a few extension points that come to my mind (We've used all of these extension points in the WSO2 Mashup Server [2]. So I can safely say that they are very easy to use). On the note of ease of use I can recommend that you have a look at WSO2 WSAS [3]. Its an is an enterprise ready Web services engine powered by Apache Axis2 which is available under Apache License 2.0. It cannot get any easier with WS-Securiy if you use WSAS. Well for me the easiest way to author service now is to use the WSO2 Mashup Server (which is also under Apache License 2.0) [2]. Its powered by WSO2 WSAS (which in turn is powered by Axis2). You can give the Mashup Server a try even without downloading it by visiting http://www.mooshup.com/ (This is a hosted version of the Mashup Server) [1] http://svn.wso2.org/repos/wso2/trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/ [2] http://wso2.org/projects/mashup [3] http://wso2.org/projects/wsas/java [4] http://svn.wso2.org/repos/wso2/trunk/wsf/javascript/rhino/message_receiver/src/org/wso2/javascript/rhino Thanks, Keith. http://www.keith-chapman.org
  16. Hi, We have been using Axis2 v1.3 for SOAP/JMS. Up until now we have had no problem using MTOM for MIME attachments. Our solution runs inside Websphere 6.1 and Axis2 queries the WAS JNDI server for its JMS Queue resources. Recently we upgraded to Axis2 v1.4. Immediately we saw problems with the MTOM support. For each JMS request 2 identical duplicate messages are placed on the queue instead of the epected 1. Has anyone seen this behaviour? What could have been introduced in Axis2 v1.4 to cause this? Thanks, Cathal
  17. I think thats a bug so I created a JIRA for you. Then we can make sure we are going to fix that soon. https://issues.apache.org/jira/browse/AXIS2-3874 http://blogs.deepal.org/