SlideShare a Scribd company logo
JBoss Wise: breaking barriers to WS testing
Alessio Soldano

alessio.soldano@jboss.com
Principal Software Eng.
JBoss - Red Hat
October 22nd, 2013
Milan JBoss User Group
Let's invoke a WS in Java...
●

You've been given a WSDL (reference)...

●

...so you start by generating the stubs (JAXWS tools)
Let's invoke a WS in Java...
●

Then you import the sources in your IDE...

●

... finally you code against them an invoke the endpoint
Perhaps you automate the process a bit...
●

Maven plugins for generating the stubs automatically

... but ...
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
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
Dynamic client API
●

Get a dynamic client for a WSDL operation and invoke...
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...
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.
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
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) !
Smooks mapper
●

Define the request and response mappings..

●

... and invoke providing the user model
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
Tree model usage
●

Get tree view model and populate it...

●

Invoke the endpoint and convert the result in another tree...
Tree model advantages
●

Detyped model... but still compliant to the WSDL/schema

●

Simple and generic...
enough to build a GUI !

Demo Time :-)
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
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? ;-)
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 !
Links
●

Project homepage: www.jboss.org/wise

●

Blog: jbosswise.blogspot.com

●

Code for this presentation: https://github.com/asoldano/demo

Write us! Contribution is more the welcome!

More Related Content

PDF
PDF
Cli jbug
PDF
Nuxeo and JavaScript
ODP
[Nuxeo World 2013] XML EXTENSION POINT COMPLETION IN NUXEO IDE - SUN TAN, SERLI
PDF
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
PDF
The SPDY Protocol
PDF
JBoss AS7
PDF
[Js hcm] Java script- Testing the awesome
Cli jbug
Nuxeo and JavaScript
[Nuxeo World 2013] XML EXTENSION POINT COMPLETION IN NUXEO IDE - SUN TAN, SERLI
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
The SPDY Protocol
JBoss AS7
[Js hcm] Java script- Testing the awesome

What's hot (20)

PPTX
Introduction to node.js
PDF
Server Side Apocalypse, JS
PDF
Development environment
PDF
First Step towards WebAssembly with Rust
PDF
WebAssembly with Rust
PDF
미들웨어 엔지니어의 클라우드 탐방기
PPTX
Knock out Introduction with samples (jsfiddle.net)
PDF
Mocha, chai and sinon
KEY
Sugarcoating your frontend one ViewModel at a time
PDF
Microreboot
PPTX
React - поглянемо по іншому на V в MVC
PPTX
Vagrant for ci
PDF
Geek Time Juin 2016 : React
PPTX
[Mas 500] Web Basics
PPTX
Asynkron programmering i Visual Studio 11
ODP
[4DEV][Łódź] Michał Szynkiewicz - WildFly Swarm: JavaEE w świecie mikroserwisów
PPTX
Maven and versioning
PDF
Apache maven
PPT
Web assembly overview by Mikhail Sorokovsky
PDF
MEAN Stack
Introduction to node.js
Server Side Apocalypse, JS
Development environment
First Step towards WebAssembly with Rust
WebAssembly with Rust
미들웨어 엔지니어의 클라우드 탐방기
Knock out Introduction with samples (jsfiddle.net)
Mocha, chai and sinon
Sugarcoating your frontend one ViewModel at a time
Microreboot
React - поглянемо по іншому на V в MVC
Vagrant for ci
Geek Time Juin 2016 : React
[Mas 500] Web Basics
Asynkron programmering i Visual Studio 11
[4DEV][Łódź] Michał Szynkiewicz - WildFly Swarm: JavaEE w świecie mikroserwisów
Maven and versioning
Apache maven
Web assembly overview by Mikhail Sorokovsky
MEAN Stack
Ad

Similar to JBoss Wise: breaking barriers to WS testing (20)

PDF
MvvmCross Seminar
PDF
MvvmCross Introduction
PDF
Nodejs presentation
PPTX
What is Mean Stack Development ?
PPTX
Training: MVVM Pattern
PDF
Tech io nodejs_20130531_v0.6
PPTX
Node.js on Azure
PDF
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
ODP
Cloud computing - an insight into "how does it really work ?"
PPTX
Mean stack
PPTX
concept of server-side JavaScript / JS Framework: NODEJS
PPT
Pragmatic Model Driven Development using openArchitectureWare
PDF
VM & JIT Profiling in VAST (ESUG 2025, Gdansk)
PDF
Advanced Node.JS Meetup
PDF
Lightning fast sass
ODP
Node js presentation
PDF
Node.js an Exectutive View
PDF
Workshop 2: JavaScript Design Patterns
PPTX
NoSQL and ACID
ODP
Groovy In the Cloud
MvvmCross Seminar
MvvmCross Introduction
Nodejs presentation
What is Mean Stack Development ?
Training: MVVM Pattern
Tech io nodejs_20130531_v0.6
Node.js on Azure
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
Cloud computing - an insight into "how does it really work ?"
Mean stack
concept of server-side JavaScript / JS Framework: NODEJS
Pragmatic Model Driven Development using openArchitectureWare
VM & JIT Profiling in VAST (ESUG 2025, Gdansk)
Advanced Node.JS Meetup
Lightning fast sass
Node js presentation
Node.js an Exectutive View
Workshop 2: JavaScript Design Patterns
NoSQL and ACID
Groovy In the Cloud
Ad

More from JBug Italy (20)

PDF
Camel and JBoss
PDF
AS7 and CLI
PDF
Intro jbug milano_26_set2012
PDF
Faster & Greater Messaging System HornetQ zzz
PDF
Infinispan,Lucene,Hibername OGM
ODP
JBoss BRMS - The enterprise platform for business logic
KEY
JBoss AS7 Overview
PDF
Intro JBug Milano - January 2012
PDF
JBoss AS7 Webservices
PDF
Intro JBug Milano - September 2011
ODP
All the cool stuff of JBoss BRMS
ODP
Infinispan and Enterprise Data Grid
PDF
Drools Introduction
PDF
September 2010 - Arquillian
PDF
September 2010 - Gatein
PDF
May 2010 - Infinispan
PDF
May 2010 - RestEasy
PDF
May 2010 - Drools flow
PDF
May 2010 - Hibernate search
ODP
April 2010 - Seam unifies JEE5
Camel and JBoss
AS7 and CLI
Intro jbug milano_26_set2012
Faster & Greater Messaging System HornetQ zzz
Infinispan,Lucene,Hibername OGM
JBoss BRMS - The enterprise platform for business logic
JBoss AS7 Overview
Intro JBug Milano - January 2012
JBoss AS7 Webservices
Intro JBug Milano - September 2011
All the cool stuff of JBoss BRMS
Infinispan and Enterprise Data Grid
Drools Introduction
September 2010 - Arquillian
September 2010 - Gatein
May 2010 - Infinispan
May 2010 - RestEasy
May 2010 - Drools flow
May 2010 - Hibernate search
April 2010 - Seam unifies JEE5

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Electronic commerce courselecture one. Pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
Teaching material agriculture food technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
The Rise and Fall of 3GPP – Time for a Sabbatical?
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MYSQL Presentation for SQL database connectivity
Electronic commerce courselecture one. Pdf
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Teaching material agriculture food technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
Mobile App Security Testing_ A Comprehensive Guide.pdf

JBoss Wise: breaking barriers to WS testing

  • 1. JBoss Wise: breaking barriers to WS testing Alessio Soldano alessio.soldano@jboss.com Principal Software Eng. JBoss - Red Hat October 22nd, 2013 Milan JBoss User Group
  • 2. Let's invoke a WS in Java... ● You've been given a WSDL (reference)... ● ...so you start by generating the stubs (JAXWS tools)
  • 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. Perhaps you automate the process a bit... ● Maven plugins for generating the stubs automatically ... but ...
  • 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. 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. Dynamic client API ● Get a dynamic client for a WSDL operation and invoke...
  • 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. 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. 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. 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. Smooks mapper ● Define the request and response mappings.. ● ... and invoke providing the user model
  • 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. Tree model usage ● Get tree view model and populate it... ● Invoke the endpoint and convert the result in another tree...
  • 15. Tree model advantages ● Detyped model... but still compliant to the WSDL/schema ● Simple and generic... enough to build a GUI ! Demo Time :-)
  • 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. 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. 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. Links ● Project homepage: www.jboss.org/wise ● Blog: jbosswise.blogspot.com ● Code for this presentation: https://github.com/asoldano/demo Write us! Contribution is more the welcome!