Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
JBoss AS7 web services
1. +
JBoss Web Services
Alessio Soldano
alessio.soldano@jboss.com
Principal Software Eng.
JBoss - Red Hat
September 20th, 2011
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. ● AS7 services
● AS7 subsystems
JBoss Web Services
JBoss WS
●
● Apache CXF integration
● Features
AS 7 Web Services extension
●
● Model
● Modules & classloading
4. Services
● Almost everything is a service
● Services are objects that can be started and stopped
● Services can have dependencies on other services
● Services can't start before their dependencies are
not satisfied
● Before stopping all dependent services will be
stopped
● Services can inject dependent services
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. 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. 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. 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. 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. How it works - runtime
Request flow
WS-* ...
Endpoint servlet
RequestHandler
Invoker
JBoss
Apache CXF AS
JAX-WS
... handlers
Response flow
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!";
}
}