<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="copyright" content="Copyright (c) 2000, 2006 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: IBM Corporation - initial API and implementation" />
<meta name="DC.rights.owner" content="(C) Copyright 2000, 2006" />
<meta content="public" name="security" />
<meta content="index,follow" name="Robots" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta content="reference" name="DC.Type" />
<meta name="DC.Title" content="Web services preferences" />
<meta name="abstract" content="Before you begin developing Web services or clients, you can optimize the workbench for Web services development by setting a variety of preferences." />
<meta name="description" content="Before you begin developing Web services or clients, you can optimize the workbench for Web services development by setting a variety of preferences." />
<meta content="preferences, Web services" name="DC.subject" />
<meta content="preferences, Web services" name="keywords" />
<meta scheme="URI" name="DC.Relation" content="../concepts/cws.html" />
<meta scheme="URI" name="DC.Relation" content="../concepts/cwsinwsa.html" />
<meta scheme="URI" name="DC.Relation" content="../tasks/toverws.html" />
<meta content="XHTML" name="DC.Format" />
<meta content="rwspref" name="DC.Identifier" />
<meta content="en-us" name="DC.Language" />
<link href="../../org.eclipse.wst.doc.user/common.css" type="text/css" rel="stylesheet" />
<title>Web services preferences</title>
</head>
<body id="rwspref"><a name="rwspref"><!-- --></a>


<h1 class="topictitle1">Web services preferences</h1>



<div><p>Before you begin developing Web services or clients, you can optimize
the workbench for Web services development by setting a variety of preferences.</p>

<div class="section"><div class="p" id="rwspref__setprefmain"><a name="rwspref__setprefmain"><!-- --></a>To set any of the Web services preferences, follow
these steps:<ol>
<li>Click  <span class="uicontrol">Window &gt; Preferences</span> to open the Preferences
notebook.</li>

<li>Expand  <span class="uicontrol">Web services</span> or <span class="uicontrol">Web and XML</span>,
and click the preference category that you want to set</li>

<li>Select the check boxes that you want to set as the default when creating
your Web service.</li>

<li>Click  <span class="uicontrol">OK</span> to apply the changes and close the Preferences
notebook.</li>

</ol>
If you require more information on any of the options, select the option
and press  <span class="uicontrol">F1</span>.</div>
<p>Web services tools enable you
to define the following preferences:</p>
<dl>
<dt class="dlterm"><a name="rwspref__axisemitterpref"><!-- --></a>Axis Emitter</dt>

<dd>This page allows you to set the following preferences used when creating
or consuming Axis Web services.</dd>

<dd class="ddexpand"><strong>WSDL2Java</strong><ul>
<li>Generate code for all elements: By default, WSDL2Java only generates code
for those elements in the WSDL file that are referenced. For additional information
regarding how referencing works refer to the Axis reference guide: <a href="http://ws.apache.org/axis/java/reference.html" target="_blank">http://ws.apache.org/axis/java/reference.html</a></li>

<li>Emits separate Helper classes for metadata: If you select this option
WSDL2Java will create a separate helper class that contains the metadata rather
than including it in the skeleton.</li>

<li>Prefers building beans to straight arrays for wrapped XML array types:
The default behavior is to map this XML construct: <pre>&lt;element name="array"&gt;
 &lt;complexType&gt;
  &lt;sequence&gt;
   &lt;element name="item" type="xs:string"/&gt;
  &lt;/sequence&gt;
 &lt;/complexType&gt;
&lt;/element&gt;</pre>
to a Java String array (String[]). If you would rather
a specific JavaBean class (ArrayOfString) be generated for these types of
schemas, select this option. </li>

<li>Add scope to deploy.wsdd: This indicates how to deploy the server implementation.
Application uses one instance of the implementation class for all requests.
Request creates a new instance of the implementation class for each request.
Session creates a new instance of the implementation class for each session.</li>

<li>Timeout in seconds: The default is 45. Use -1 to disable the timeout.</li>

</ul>
</dd>

<dd class="ddexpand"><strong>Java2WSDL</strong><ul>
<li>Look for allowed methods in inherited class: If this option is specified,
the Java2WSDL parser will look into extended classes to determine the list
of methods to export into the WSDL file. </li>

<li>Analyze the service class for compliance to JAX-RPC before generating
code: If selected, the tools will examine the Java service class and its value
types to determine if it satisfies important requirements of the JAX-RPC specification.</li>

</ul>
</dd>


<dt class="dlterm"><a name="rwspref__popupdialogselect"><!-- --></a>Popup Dialog Selection</dt>

<dd>The Dialogs preferences enable you to determine which dialog boxes that
you want to see when running popup actions. If you have disabled any of the
dialogs by selecting "Do not show this dialog again" on the first page of
a Web services wizard, you can undo your change by clearing the check box
beside the dialog that you have chosen to hide.</dd>


<dt class="dlterm"><a name="rwspref__wsicompliance"><!-- --></a>Profile Compliance and Validation</dt>

<dd>The WS-I Compliance preferences allow you to select your level of compliance
with the WS-I Simple SOAP Binding Profile (SSBP) and WS-I Attachement Profile
(AP). Note: if you change the level of WS-I compliance while WS-I incompliances
are listed in the Task view, the Task view will not be automatically updated.
The workspace must be revalidated before the warnings will be removed from
the Task view. For more information on WS-I, refer to: <a href="http://www.ws-i.org/" target="_blank">http://www.ws-i.org/</a></dd>

<dd class="ddexpand">For validation preferences, you can choose whether or not WSDL files consumed
by the Web services wizards are validated, and whether or not the WSDL validation
must complete before the wizard will move to the next step.</dd>


<dt class="dlterm"><a name="rwspref__projtopology"><!-- --></a>Project Topology</dt>

<dd>The Project Topology preferences allow you to:<ul>
<li>Select the default client project type that the Web services wizards will
create when generating a Web service client. You can also set the order in
which the client project types will be listed in the wizard. Note that this
selection is simply a default and an alternate project type can be selected
in the wizard.</li>

<li>Select whether you want to generate the Web service and the Web service
client in the same EAR project or different EAR projects. Generating the service
and client into different EAR projects can reduce the chance of conflicts
that occur when both exist in a single EAR project, but uses more system resources.</li>

</ul>
</dd>


<dt class="dlterm"><a name="rwspref__resourcemanagement"><!-- --></a>Resource Management</dt>

<dd>The Resource Management preferences enable you to determine the file and
folder creation and overwriting defaults that you want to use when creating
your Web service.<ul>
<li>Overwrite files without warning: selecting this will allow the wizards
to overwrite any existing files in the workspace without prompting. If it
is not selected you will be prompted each time a file needs to be overwritten.</li>

<li>Create folders when necessary: selecting this enables the wizards to create
any required folders.</li>

<li>Check out files without warning: select to check out files without receiving
a warning message asking for confirmation.</li>

<li>Merge generated skeleton file: this check box is disabled by default.
 If this check box is enabled, when a skeleton file of the same name already
exists in the workspace, the newly generated skeleton file will merge with
the existing skeleton file.  Enable this to preserve code that you have already
modified in the existing skeleton files.<p>Note that when this preference
is enabled, if you change the return type of an interface, the resulting skeleton
file will have a method returning the type as defined in the new interface
but would have a method body from the original skeleton file (which would
be returning a different type).  This will result in an compilation error
that the you will have to correct manually.</p>
</li>

</ul>
</dd>


<dt class="dlterm"><a name="rwspref__scenariodefaults"><!-- --></a>Scenario Defaults</dt>

<dd>The Scenario Defaults preferences enable you to set the following scenario
defaults that you want to use when creating your Web service:<ul>
<li>which type of Web service and client you want to be selected by default.</li>

<li>which phases of the Web service lifecycle you want to complete in the
wizard.</li>

<li>if you want the Web Services Explorer to launch by default so that you
can publish your Web service to a UDDI registry.</li>

<li>if you want the Web service SOAP traffic routed through a TCP/IP monitor
so that you can monitor the SOAP packets and optionally test them for WS-I
compliance.</li>

</ul>
Note that all these defaults can be overridden in the wizard.</dd>


<dt class="dlterm"><a name="rwspref__serverandruntime"><!-- --></a>Server and Runtime</dt>

<dd>Select the server, Web service run-time environment, and J2EE version
that you want selected by default in the Web services wizard. Note that all
these defaults can be overridden in the wizard.</dd>


<dt class="dlterm"><a name="rwspref__testfacilitydefaults"><!-- --></a>Test Facility Defaults</dt>

<dd>can select whether to have the wizard automatically launch a test facility,
and you can select your preferred type of test facility</dd>


<dt class="dlterm"><a name="rwspref__wsdlfiles"><!-- --></a>WSDL files</dt>

<dd>When creating a WSDL file in the WSDL editor, you can set the default
target namespace. If you do not select to change the default, your WSDL file
will have http://tempuri.org as its target namespace.</dd>

</dl>
</div>

</div>

<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="../concepts/cws.html" title="A Web service is a set of related application functions that can be programmatically invoked over the Internet. Businesses can dynamically mix and match Web services to perform complex transactions with minimal programming. Web services allow buyers and sellers all over the world to discover each other, connect dynamically, and execute transactions in real time with minimal human interaction.">Web services overview</a></div>
</div>

<div class="linklist"><strong>Related Concepts</strong><br />

<div><a href="../concepts/cwsinwsa.html" title="">Tools for Web services development</a></div></div>

<div class="linklist"><strong>Related Tasks</strong><br />

<div><a href="../tasks/toverws.html"> Developing Web
services</a></div></div>
</div>

</body>
</html>