Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 3. Deploying an Apache CXF Web Service
Abstract
3.1. Apache CXF Example Copier lienLien copié sur presse-papiers!
Overview Copier lienLien copié sur presse-papiers!
url-pattern setting from web.xml, and the address attribute of the Web services endpoint are combined to give the URL, http://localhost:8080/wsdl_first/services/CustomerServicePort.
Figure 3.1. Example Web Service Deployed in a Web Server
wsdl_first sample Copier lienLien copié sur presse-papiers!
samples/wsdl_first directory. For details of how to install the Apache CXF distribution, see the section called “Install Apache CXF”.
web.xml file Copier lienLien copié sur presse-papiers!
web.xml file. In the wsdl_first project, the web.xml file is stored at the following location:
wsdl_first/src/main/webapp/WEB-INF/web.xml
wsdl_first/src/main/webapp/WEB-INF/web.xml
web.xml file.
Example 3.1. web.xml File for the wsdl_first Example
web.xml file are:
- Servlet class—specifies the
org.apache.cxf.transport.servlet.CXFServletclass, which implements a special servlet that integrates with Web services. - URL pattern—determines which URLs are routed to this servlet. In general, the servlet URL has the following form:
http://Host:Port/WARFileName/URLPattern
http://Host:Port/WARFileName/URLPatternCopy to Clipboard Copied! Toggle word wrap Toggle overflow Where the base URL,http://Host:Port, is determined by the configuration of the Web server, theWARFileNameis the root of theWARFileName.warWAR file, and theURLPatternis specified by the contents of theurl-patternelement.Assuming that the Web server port is set to 8080, thewsdl_firstexample servlet will match URLs of the following form:http://localhost:8080/wsdl_first/services/*
http://localhost:8080/wsdl_first/services/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Implied Spring container Copier lienLien copié sur presse-papiers!
CXFServlet automatically creates and starts up a Spring container, which you can then use for defining Web service endpoints. By default, this Spring container automatically loads the following XML file in the WAR:
WEB-INF/cxf-servlet.xml
WEB-INF/cxf-servlet.xml
wsdl_first example project, this file is stored at the following location:
wsdl_first/src/main/webapp/WEB-INF/cxf-servlet.xml
wsdl_first/src/main/webapp/WEB-INF/cxf-servlet.xml
cxf-servlet.xml file Copier lienLien copié sur presse-papiers!
cxf-servlet.xml file is primarily used to create Web service endpoints, which represent the Web services exposed through the Web server. Apache CXF provides a convenient and flexible syntax for defining Web service endpoints in XML and you can use this flexible syntax to define endpoints in cxf-servlet.xml.
cxf-servlet.xml file, which creates a single CustomerService endpoint, using the jaxws:endpoint element.
Example 3.2. Spring Configuration for the wsdl_first Example
address attribute of the jaxws:endpoint specifies the final segment of the Web service's URL. When you put together all of the settings from the Web server, the web.xml file, and the cxf-server.xml file, you obtain the following URL for this Web service endpoint:
http://localhost:8080/wsdl_first/services/CustomerServicePort
http://localhost:8080/wsdl_first/services/CustomerServicePort
WSDL address configuration Copier lienLien copié sur presse-papiers!
web.xml, and the Spring configuration, cxf-servlet.xml, it is also necessary to ensure that the SOAP address in the WSDL contract is correctly specified, so that it matches the URL for this Web service.
wsdl_first example, the WSDL contract is located in the following file:
wsdl_first/src/main/resources/CustomerService.wsdl
wsdl_first/src/main/resources/CustomerService.wsdl
location attribute of the soap:address element must be set to the correct Web service URL, as shown in Example 3.3, “Address in the WSDL CustomerService Contract”.
Example 3.3. Address in the WSDL CustomerService Contract