JBoss AS7 web services


Published on

JBoss AS7 Web Services subsystem presentation

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

JBoss AS7 web services

  1. 1. +JBoss Web Services Alessio Soldanoalessio.soldano@jboss.com Principal Software Eng. JBoss - Red Hat September 20th, 2011
  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● JBoss AS[2], JBoss Wise[3] contributor● Current Red Hat representative at JSR-224 EG and W3C WS-ResourceAccess WG● Apache CXF[4] committer and PMC member [1] http://www.jboss.org/jbossws [2] http://www.jboss.org/jbossas [3] http://www.jboss.org/wise [4] http://cxf.apache.org
  3. 3. ● AS7 services● AS7 subsystems JBoss Web ServicesJBoss WS● ● Apache CXF integration ● FeaturesAS 7 Web Services extension● ● Model ● Modules & classloading
  4. 4. Services● Almost everything is a service● Services are objects that can be started and stopped● Services can have dependencies on other services● Services cant start before their dependencies are not satisfied● Before stopping all dependent services will be stopped● Services can inject dependent services
  5. 5. Service examples● Of course core services, but also – EJBs – JNDI bindings – Servlets – Deployments – Registries● Individually shutdown and restart with all dependencies being maintained – e.g. XTS endpoints
  6. 6. Subsystems● A subsystem implements a “logical” area of the server – subsystem:datasources – subsystem:messaging – subsystem:ejb3 – subsystem:webservices● The subsystem can provide user visible configuration – datasource definitions – web connector configurations
  7. 7. Subsystems● Custom subsystems can be implemented for functionality outside of the application server● The subsystem consist of an extension – org.jboss.as.controller.Extension● Other components – Schema – Parsers – OperationHandlers● Example: org.jboss.as.webservices extension – Model – Modules
  8. 8. What is JBoss WS?● “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
  9. 9. Apache CXF integration● Standards & specifications● NIH syndrome & wider community● Added value● Home-brew solutions for running CXF on JBossAS 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 Web Service Framework features ;-) – ...
  10. 10. How it works - runtime Request flow WS-* ... Endpoint servlet RequestHandler Invoker JBoss Apache CXF AS JAX-WS ... handlers Response flow
  11. 11. How it works - deployment● POJO endpoint @WebService(...) <web-app ...> <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!"; } }
  12. 12. 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>
  13. 13. Links● WS documentation for AS7 – https://docs.jboss.org/author/display/JBWS● http://www.jboss.org/jbossws● http://jbossws.blogspot.com/
  14. 14. Thanks! Q&A