Web Services   Alessio Soldanoalessio.soldano@jboss.com Principal Software Eng.     JBoss - Red Hat     April 12th, 2012
Who is Alessio?●   JBoss WS[1] committer since early 2007●   JBoss / Red Hat employee since end of 2007●   JBoss Web Servi...
Agenda●   What is JBoss WS ?    ●   Apache CXF integration    ●   Features●   JBoss AS 7.1    ●   Key features    ●   WS c...
What is JBossWS?●   “Just” a feature-rich JAX-WS compatible ws    stack till early 2008...        –   AS 4.x, AS 5.x targe...
Reasons for integrating●   really good open source implementations    already available - NIH syndrome●   focus on added v...
Who benefits from this move●   The JBoss community:        –   greater joint community support        –   core devs can wo...
Why Apache CXF?●   tech analysis: features, quality of code, performances,    extensibility ...●   community size / activi...
A contribution balance●   JBoss -> Apache CXF community        –   Java EE TCK6 testing        –   Additional testing scen...
Features●   Inherited from Apache CXF       –   JAXWS 2.2       –   WS-* (RM, Security, Policy, Addressing, ...)●   JBossW...
Do I really need your integration                  layer?●   Home-brew solutions for running CXF on JBoss    AS might work...
How it works - runtime                                     Request flow                                       WS-*        ...
How it works - deployment●   POJO endpoint    @WebService(...)               <web-app ...>                   [optional web...
JBoss Application Server 7.1●   JavaEE 6 Full Profile compliant●   Fast and lighweight●   Domain management (DMR)●   Multi...
JBossWS in AS 7●   webservices subsystem part of AS7 DMR       –   wsdl soap:address rewrite       –   pre-defined endpoin...
So, why JBossAS 7 for WS?●   Lightweight yet full JavaEE6 compliant container●   Fast start-up / easy development & testin...
Demo●   Basic WS endpoint deployment        –   AS7 console●   WS-Security UT Profile JAAS integration        –   Policy d...
Demo -> OpenShift●   WS-Security interoperability endpoints         –    http://jbossws.blogspot.it/2012/04/ws-endpoints-o...
Links●   AS 7.1 documentation (WS and anything)        –   https://docs.jboss.org/author/display/JBWS        –   https://d...
Thanks!          Q&A
As7 web services - JUG Milan April 2012
Upcoming SlideShare
Loading in …5
×

As7 web services - JUG Milan April 2012

1,280
-1

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,280
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
49
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

As7 web services - JUG Milan April 2012

  1. 1. Web Services Alessio Soldanoalessio.soldano@jboss.com Principal Software Eng. JBoss - Red Hat April 12th, 2012
  2. 2. Who is Alessio?● JBoss WS[1] committer since early 2007● JBoss / Red Hat employee since end of 2007● JBoss Web Service Lead, 2008● Contributor to JBoss AS[2] and other JBoss Community projects● Current Red Hat representative at JSR-224 EG and W3C WS-ResourceAccess WG● Apache CXF[3] committer and PMC member [1] http://www.jboss.org/jbossws [2] http://www.jboss.org/jbossas [3] http://cxf.apache.org
  3. 3. Agenda● What is JBoss WS ? ● Apache CXF integration ● Features● JBoss AS 7.1 ● Key features ● WS components● Demo
  4. 4. What is JBossWS?● “Just” a feature-rich JAX-WS compatible ws stack till early 2008... – AS 4.x, AS 5.x target containers● ... a web services framework providing integration layers for 3rd party ws stacks on top of multiple JBoss AS versions – CXF, Native and Metro stack – AS 5.x, AS 6.x target containers● ... the interface and integration point of Apache CXF in JBoss application server – AS 6.x, AS 7.x target containers
  5. 5. Reasons for integrating● really good open source implementations already available - NIH syndrome● focus on added value● ... a lot of Web Services specifications!
  6. 6. Who benefits from this move● The JBoss community: – greater joint community support – core devs can work on added value and application server specific integration● The integrated ws project and its community: – additional tests – bugs detection and fix – ...
  7. 7. Why Apache CXF?● tech analysis: features, quality of code, performances, extensibility ...● community size / activity● opennes to participation / involvement – commit rights – support paths – need for a deal?● driving forces behind the project?● future potential Apache CXF perfectly fitted, others didnt...
  8. 8. A contribution balance● JBoss -> Apache CXF community – Java EE TCK6 testing – Additional testing scenarios – Multiple bug fixes – Endpoint.publish() API additions in JAXWS 2.2● Apache CXF community -> JBoss – Quick time-to-market with JAXWS 2.2 – Many WS-* features, especially in the WS-Security area – Multiple bug fixes – ...
  9. 9. Features● Inherited from Apache CXF – JAXWS 2.2 – WS-* (RM, Security, Policy, Addressing, ...)● JBossWS Integration – AS integration (authentication, authorization, ...) – Additional API (e.g. @EndpointConfig) – Tooling (Maven, Ant, ...) – JSR109 1.3 – JAXBIntroductions – Common JAX-WSA JSR-261 API – Management (console, record system, ...)
  10. 10. Do I really need your integration layer?● Home-brew solutions for running CXF on JBoss AS might work for specific usecases, but you... – need to embed the stack in your apps – will suffer from classloading issues – can just use pojo endpoints – have no webserviceref injection in ejb3 – loose additional JBossWS features – ...
  11. 11. How it works - runtime Request flow WS-* ... Endpoint servlet RequestHandler Invoker JBoss Apache CXF AS JAX-WS ... handlers Response flow
  12. 12. How it works - deployment● POJO endpoint @WebService(...) <web-app ...> [optional web.xml] <servlet> public class MyEndpoint { <servlet-name>TestService</servlet-name> public String sayHello() { <servlet-class>org.jboss.test.ws.jaxws.samples.MyEndpoint</servlet-class> return "Hello World!"; </servlet> } <servlet-mapping> } <servlet-name>TestService</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>● EJB3 endpoint ● Create metadata to deploy jboss-web app @WebService(...) ● Create CXF bus @Stateless ● Customize CXF bus public class MyEndpoint { ● Start web app for public String sayHello() { published endpoints return "Hello World!"; } }
  13. 13. JBoss Application Server 7.1● JavaEE 6 Full Profile compliant● Fast and lighweight● Domain management (DMR)● Multiple management interfaces (CLI, API, console)● Modular classloading● Standalone and Domain operational modes● Arquillian support
  14. 14. JBossWS in AS 7● webservices subsystem part of AS7 DMR – wsdl soap:address rewrite – pre-defined endpoint configs● Modules – org.jboss.ws.* – org.jboss.as.webservices.* – org.apache.cxf – misc dependencies (Santuario, WSS4J, WSDL4J, etc.)● Command line tools – wsconsume.sh/bat, wsprovide.sh/bat
  15. 15. So, why JBossAS 7 for WS?● Lightweight yet full JavaEE6 compliant container● Fast start-up / easy development & testing● Apache CXF integration – Wide range of WS specs coverage – Performances● Peace of mind coming from – “joint” JBoss / Apache CXF community – Red Hat support if moving to Enterprise Platform
  16. 16. Demo● Basic WS endpoint deployment – AS7 console● WS-Security UT Profile JAAS integration – Policy driven approach – AS7 / CXF security integration <subsystem xmlns="urn:jboss:domain:security:1.1"> <security-domains> <!-- ... other security domains ... --> <security-domain name="JBossWS"> <authentication> <login-module code="UsersRoles" flag="required"> <module-option name="usersProperties" value="jbossws-users.properties"/> <module-option name="unauthenticatedIdentity" value="anonymous"/> <module-option name="rolesProperties" value="jbossws-roles.properties"/> </login-module> </authentication> </security-domain> </security-domains> </subsystem>
  17. 17. Demo -> OpenShift● WS-Security interoperability endpoints – http://jbossws.blogspot.it/2012/04/ws-endpoints-on-openshift.html● Try it! – http://jbossws-asoldano.rhcloud.com/jbossws-cxf-wsse-interop● Read some doc ;-) – https://docs.jboss.org/author/display/JBWS/WS-Security● Clone the repo! – https://github.com/asoldano/jbossws-cxf-wsse-interop-openshift● Look at the webapp sources – http://anonsvn.jboss.org/repos/jbossws/projects/interop/cxf/wsse-webapp/ (webapp) – http://download.jboss.org/jbossws/jbossws-cxf-4.0.2.GA.zip (endpoints)
  18. 18. Links● AS 7.1 documentation (WS and anything) – https://docs.jboss.org/author/display/JBWS – https://docs.jboss.org/author/display/AS71/● http://www.jboss.org/jbossws● http://www.jboss.org/jbossas● http://jbossws.blogspot.com/
  19. 19. Thanks! Q&A
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×