Integration Server 10.3 | Web Services Developer’s Guide | Working with Web Services | About Provider Web Service Descriptors | Creating a Service First Provider Web Service Descriptor
 
Creating a Service First Provider Web Service Descriptor
 
Protocol Mismatch Between Transport and Primary Port
Keep the following points in mind when creating a service first provider web service descriptor:
*You must have Write access to the folder in which you want to store the provider web service descriptor.
*The style and use selected for a provider web service descriptor determines what types of fields and field names are allowed in the service signature. Designer will not create a provider web service descriptor if the signature of the service does not meet the requirements of the selected binding style/use. For more information, see Service Signature Requirements for Service First Provider Web Service Descriptors.
*Depending on the use and style that you specify, you may have to either rename certain fields in the IS service or assign an XML namespace to them.
*You must have at least one web service endpoint alias that specifies the JMS transport before you can create a provider web service descriptor with a JMS binder. For more information about creating a web service endpoint alias, see the section Configuring Endpoint Aliases for Web Services in the webMethods Integration Server Administrator’s Guide.
*When using an adapter service to create a provider web service descriptor, if the service returns values in the pipeline that do not match the output signature, you must change those variable properties to optional fields (where applicable), or else wrap the service in a flow to add or drop variables to match the output signature.
*Web service descriptors that are not running in compatibility mode can stream MTOM attachments for both inbound and outbound SOAP messages. To stream MTOM attachments, the object that represents the field to be streamed should be of type com.wm.util.XOPObject Java class.
*You can quickly create a service first provider web service descriptor by right-clicking the service, selecting Generate Provider WSD. Enter a name for the web service descriptor in the Provide a Name dialog box and click OK. Designer automatically creates a provider web service descriptor in the same folder as the selected IS service, using all the default options.
*Integration Server generates invalid WSDL for Axis and .Net clients if the provider web service descriptor contains a C service for that takes a document specification as input. Axis and .Net clients cannot handle the resulting Java stub classes and throw an error. Do not use a C service with a document specification in the input in a server first provider web service descriptor if you know that the resulting WSDL will be used by Axis and .Net clients.
*To create a service first provider web service descriptor
1. In the Package Navigator view of Designer, click File > New > Web Service Descriptor.
2. In the New Web Service Descriptor dialog box, select the folder in which you want to save the provider web service descriptor. Click Next.
3. In the Element Name field, specify a name for the provider web service descriptor using any combination of letters, numbers, and/or the underscore character. Click Next.
4. Under Create web service descriptor as, select Provider (Inbound Request).
5. Under Web service source, select Existing IS service(s).
6. Click Next.
7. Select one or more services to include as operations in the provider web service descriptor. Click Next.
8. Provide the following information:
In this field...
Specify...
SOAP version
Whether SOAP messages for this web service should use SOAP 1.1 or SOAP 1.2 message format.
Transport
The transport protocol used to access the web service. Select one of the following:
*HTTP
*HTTPS
*JMS
Use and style for operations
The style/use for operations in the provider web service descriptor. Select one of the following:
*Document - Literal
*RPC - Literal
*RPC - Encoded
Endpoint
The address at which the web service can be invoked. Do one of the following:
*To use a provider web service endpoint alias to specify the address, select the Alias option. Then, in the Alias list, select the provider web service endpoint alias. Select DEFAULT(aliasName) if you want to use the information in the default provider web service endpoint alias for the address. If the Alias list includes a blank row, the Integration Server does not have a default provider web service endpoint alias for the protocol.
Note:
If you select the blank row and a default provider endpoint alias is later set for the selected protocol, Integration Server then uses the information from the alias when constructing the WSDL document and during run-time processing.
*To specify a host and port as the address, select the Host option. Then, in the Host field specify the host name for the Integration Server on which the web service resides. In the Port field, specify an active HTTP or HTTPS listener port defined on the Integration Server specified in the Host field.
Note:
You can only specify Host and Port for the endpoint if a default provider endpoint alias does not exist for the selected protocol. When a default alias exists, Designer populates the Host and Port fields with the host and port from the default provider end point alias.
Note:
If you selected JMS as the transport, you must specify an alias. After you select a provider web service endpoint alias, Designer displays the initial portion of the JMS URI that will be used as the address in the Port address (prefix) field.
Directive
The SOAP processor used to process the SOAP messages received by the operation in the provider web service descriptor. The Directive list displays all of the SOAP processors registered on the Integration Server. The default processor is ws - Web Services SOAP Processor.
Target namespace
The URL that you want to use as the target namespace for the provider web service descriptor. In a WSDL document generated for this provider web service descriptor the elements, attributes, and type definitions will belong to this namespace.
Note:
If you specify a transport, but do not specify a host, port, or endpoint alias, Integration Server uses the primary port as the port in the endpoint URL. If the selected transport and the protocol of the primary port do not match, web service clients will not execute successfully. For more information see Protocol Mismatch Between Transport and Primary Port.
9. Under Enforce WS-I Basic Profile 1.1 compliance do one of the following:
*Select Yes if you want Designer to validate all the web service descriptor objects and properties against the WS-I requirements before creating the web service descriptor.
*Select No if you do not want Designer to enforce compliance for WS-I Basic Profile 1.1.
Note:
WS-I compliance cannot be enforced if the WSDL contains a SOAP over JMS binding.
10. If you want Integration Server to use the Xerces Java parser to validate the schema elements that represent the signatures of the services used as operations, select the Validate schema using Xerces check box.
11. Click Finish.
If Designer cannot create or cannot completely generate a web service descriptor, Designer displays error messages or warning messages.
Notes:
*If you selected the Validate schema using Xerces check box, when creating a service first provider web service descriptor, Integration Server converts the signatures of the services used as operations to XML schema elements. Then Integration Server uses the Xerces Java parser to validate the schema elements. If the schema element does not conform syntactically to the schema for XML Schemas defined in XML Schema Part 1: Structures (which is located at http://www.w3.org/TR/xmlschema-1), Integration Server does not create the web service descriptor. Instead, Designer displays an error message that lists the number, title, location, and description of the validation errors.
Note:Integration Server uses Xerces Java parser version J-2.11.0. Limitations for this version are listed at http://xerces.apache.org/xerces2-j/xml-schema.html.
*Set up a package dependency if an IS service uses a document type from a different package as the input or output signature.
*The Message Exchange Pattern (MEP) that Integration Server uses for the operation it creates from the service can be In-Out MEP or In-Only MEP. Integration Server always uses In-Out MEP when the web service descriptor’s Pre-8.2 compatibility mode property is true. When this property is false, Integration Server uses:
*In-Out MEP when the service signature contains both input and output parameters.
*In-Only MEP when the service signature contains no output parameters.
Note:
If you want to use Robust In-Only MEP rather than In-Only MEP, after creating the web service descriptor for a service with no output parameters, add a fault to the operation.
For more information about Integration Server MEP support, see the section How Integration Server Determines the MEP Type to Use in the Web Services Developer’s Guide.