<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <meta name="copyright" content="Copyright (c) 2009 Shane Clarke. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/. Contributors: Shane Clarke - initial API and implementation">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Generate an SEI and a skeleton implementation bean from a WSDL document using Apache CXF</title>
    <link href="../book.css" rel="stylesheet" charset="ISO-8859-1" type="text/css">
    <script type="text/javascript" language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js"></script>
</head>
<body lang="EN-US">
<h2>Generate an SEI and a skeleton implementation bean from a WSDL document using Apache CXF</h2>
<h3>Prerequisites:</h3>
<ol>
    <li>Install and configure the Apache CXF runtime environment. See the <a href="PLUGINS_ROOT/org.eclipse.jst.ws.jaxws.doc.user/gettingstarted/requirements.html">Requirements and Installation</a> page for more details.</li>
    <li>Create a Dynamic Web Project and enable it for Apache CXF Web services development as described here: <a href="../tasks/create_cxf_project.html">Create a project for CXF Web services</a>.</li>
	<li>Create or import a WSDL document into the Web Content folder of the Dynamic Web Project.</li>
</ol>
To create an SEI and a skeleton implementation bean from a WSDL document using the Apache CXF runtime environment:
<ol>
	<li>Select <a class="command-link"
		href='javascript:executeCommand("org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.jst.j2ee.J2EEPerspective)")'>
	<img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="Open the Java EE perspective"><strong>Window &gt; Open Perspective &gt; Java EE</strong></a> from the top level menu to switch to the Java EE perspective.</li>
	<li>In the Project Explorer view select the WSDL document that you created or imported into the Dynamic Web Projects Web Content folder.</li>
    <li>Open the Web Service wizard by selecting <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.newWizard(newWizardId=org.eclipse.jst.ws.creation.ui.wizard.serverwizard)")'>
    <img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="Open the new web service wizard"><strong>File &gt; New &gt; Other... &gt; Web Services &gt; Web Service</strong></a> from the top level menu.</li>
	<li>Web Services page: select <b>Top down Java bean Web Service</b> as the Web service type and browse to select the WSDL document from which to generate the SEI and implementation bean:
	<p><img src="./images/top_down_wizard.png" alt="Top down Web Services Wizard"></p>
	<ol type="a">
		<li>Move the service slider to the stage of Web services development that you wish to complete.
		<ul>
			<li>Develop: Invokes the Apache CXF wsdl2java tool using the preference defaults and the information gathered in the wizard to generate an annotated Service Endpoint Interface and supporting classes. The wizard also generates a JAX-WS endpoint configuration file.</li>
			<li>Assemble: If required by the target server this phase
			assembles and configures the project that hosts the Web service into an EAR.</li>
			<li>Deploy: Generates the deployment artifacts for the Web service.</li>
			<li>Install: Installs and configures the Web Module and EARs on the target server.</li>
			<li>Start: Starts the target server once the Web service has been installed on it.</li>
			<li>Test: Use the Web Service Explorer to test the generated Web service.</li>
		</ul>
		</li>
		<li>Server: Select a server to deploy your Web service to.</li>
		<li>Web service runtime: Select Apache CXF 2.x</li>
		<li>Service project: Select the project in your workspace into which Apache CXF will generate the code.</li>
		<li>If you wish to generate a client for your Web service, select <b>Java Proxy</b> as the Client type:
		<ul>
			<li>Move the client slider to the <b>Develop client</b> stage.</li>
			<li>Client project: Select a different project into which to generate the client code. The wizard will create the project for you if it doesn't exist and configure it with the CXF Facet.</li>
		</ul>
		</li>
		<li>Publish the Web service: Launch the Web Services Explorer to publish your Web service to a UDDI registry.</li>
		<li>Monitor the Web service: Monitor the Web service's SOAP traffic using the TCP/IP Monitor.</li>
	</ol>
	</li>
	<li>Click <b>Next &gt;</b> to move to the first Apache CXF wsdl2java Configuration page:
	<ol>
		<li>Output Directory: Specify the source folder in the service project into which the code is generated.</li>
		<li>Package Name: Type the Java package name to use for the generated code.</li>
		<li>Specify WSDL Namespace to Package Name Mappings: Optionally specify WSDL namespace mappings to Java package names.</li>
		<li>Service Name: Specify the name of the WSDL service from which to generate code. The default is to generate code for every service in the WSDL document.</li>
		<li>Binding Files: Specify one or more JAX-WS or JAXB binding files.</li>
	</ol>
	</li>
	<li>Click <b>Next &gt;</b> to move to the second Apache CXF wsdl2java configuration page which allows you to override the <a href="../reference/wsdl2java_tab.html">wsdl2java</a> default preferences:
	<p>Ensure that the <b>Generate Implementation</b> check box is selected and click <b>Next &gt;</b>
	</li>
	<li>Test Web Service page. This page will be displayed if the service slider on the first page was set to Test service.
	<p>Select the launch button to test the Web Service with the <a href="PLUGINS_ROOT/org.eclipse.jst.ws.consumption.ui.doc.user/tasks/ttestwsdl.html">Web Services Explorer</a>.</p>
	</li>
	<li>Apache CXF JAX-WS client configuration page: This page will be displayed if the client slider on the Web services page was set to <b>Develop client</b>.
	<p>Refer to the <a href="./create_client.html">Create a JAX-WS Web Service Client</a> page for information on the options displayed on this page.</p>
	</li>
	<li>Web Service Publication Page: Select whether or not you want to publish this Web service to a UDDI registry. Click <b>Finish</b></li>
</ol>
<p><img src="../images/ngrelt.png" alt="Related tasks" border="0" ></p>
<a href="../tasks/create_bottomup.html">Create a Web Service from a Java implementation bean using Apache CXF</a><br>
<a href="../tasks/create_client.html">Generate a JAX-WS Web Service Client from a WSDL document using Apache CXF</a><br>
</body>
</html>