Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JBoss Wise: breaking barriers to WS testing


Published on

JBoss Wise [1] is a library for simplifying webservices invocation and testing. It provides solutions for easy browsing of WSDL models, zero-code invocation of WS operations and for lowering the technical entry level to WS testing. The presentation will go through the recently added functionalities; the focus will then shift to WS testing, with a demo of the available GUI and an overview of the future enhancement efforts.


Published in: Technology
  • Login to see the comments

  • Be the first to like this

JBoss Wise: breaking barriers to WS testing

  1. 1. JBoss Wise: breaking barriers to WS testing Alessio Soldano Principal Software Eng. JBoss - Red Hat October 22nd, 2013 Milan JBoss User Group
  2. 2. Let's invoke a WS in Java... ● You've been given a WSDL (reference)... ● you start by generating the stubs (JAXWS tools)
  3. 3. Let's invoke a WS in Java... ● Then you import the sources in your IDE... ● ... finally you code against them an invoke the endpoint
  4. 4. Perhaps you automate the process a bit... ● Maven plugins for generating the stubs automatically ... but ...
  5. 5. Pros / Cons ● Your code is actually bound to the generated classes (client – server coupling) ● Good solution for clients of stable endpoints ● Not suitable to quick testing of multiple/different endpoints
  6. 6. JBoss Wise ● Java library for easily invoking webservices ● Built on top of JBossWS stack ● Goals ‣Effective ‣Easy client/server decoupling browsing of WSDL models ‣(nearly)zero-code ‣Lowering invocation of WS operations the technical entry level to WS testing
  7. 7. Dynamic client API ● Get a dynamic client for a WSDL operation and invoke...
  8. 8. Dynamic client API ● or browse the model to choose the method to call ● What about parameters? ‣ non-trivial endpoints get and return structured data... ‣ we need Object instances to put in the invocation Map...
  9. 9. WebParameter inspection + reflection ● Get Java type from WebParameter instances ● Use reflection to build up the desired data ● ... working on classes generated on-the-fly by Wise ... ● ugly, unpractical, etc.
  10. 10. Wise mappers ● Allow users to invoke endpoints using their own model ● Map user model to internally generated client classes ● Any custom mapper can be implemented ● ... moving the problem to defining the proper vehicle and transformation of user data into target endpoint parameters
  11. 11. Smooks mapper ● “Smooks is an extensible framework for building applications for processing XML and non XML data (CSV, Java, ...) using Java” with proper Smooks mappers, Wise can invoke a WS endpoint given any model (even in different formats) !
  12. 12. Smooks mapper ● Define the request and response mappings.. ● ... and invoke providing the user model
  13. 13. Tree model So the request / response model is really the core concept here... what about something very simple yet generic, with String only values? ● Tree-like view model ● kind of a DOM tree built on the valid WS req/res space
  14. 14. Tree model usage ● Get tree view model and populate it... ● Invoke the endpoint and convert the result in another tree...
  15. 15. Tree model advantages ● Detyped model... but still compliant to the WSDL/schema ● Simple and generic... enough to build a GUI ! Demo Time :-)
  16. 16. Wise GUI ● Web based ‣ ‣ usable everywhere (even on mobile...) ‣ ● no need for Eclipse / IDE deployed on JBoss (even on Openshift...) Focus on the data, not on the technology ‣ No WS, XML or Java knowledge required ‣ Fast / agile WS testing ‣ Enable business acceptance tests from analysts
  17. 17. Wise Invokes Services Easily ● Wise is built on top of a JavaEE certified stack (JBossWS) ... this ensures core correctness and interoperability. ● You're consuming WS services (based on WSDL / XSD) ‣ you're granted compliance with the contract ‣ ... but you don't get your hands dirty with SOAP ;-) Is it really that complex and inconvenient to call one of those dreaded WSDL based WS services? ;-)
  18. 18. Future features (maybe...) ● GUI user management ● Import / export GUI environment ● Multiple authentication options ● Explicit WS-Policy support ● Smooks Eclipse plugin for Wise mappers generation? ● ... ... but we need help from YOU !
  19. 19. Links ● Project homepage: ● Blog: ● Code for this presentation: Write us! Contribution is more the welcome!