WAS v8.5 > Develop applications > Develop web services - Addressing (WS-Addressing) > Enable Web Services Addressing support for JAX-WS applications > Enable Web Services Addressing support for JAX-WS applications using policy sets > Configure a service provider to share its policy configurationConfigure a service provider to share its policy configuration using wsadmin.sh
A WebSphere Application Server service provider can share its policy configuration in published Web Services Description Language (WSDL), or WSDL that is obtained using an HTTP GET request or the Web Services Metadata Exchange (WS-MetadataExchange) GetMetadata request.
You have developed a web services service provider containing all the necessary artifacts and deployed the web services application into the application server instance. You have attached the policy sets and managed the associated bindings.
For a list of WS-Policy assertion specifications and WS-Policy domains that are supported, see the topic about learning about WS-Policy. We can make the policy configuration of a JAX-WS service endpoint available to share in the following ways:
- Include the policy configuration of the service provider in the WSDL. The WSDL is then available to publish, or to obtain using an HTTP GET request.
- Enable the Web Services Metadata Exchange (WS-MetadataExchange) protocol so the policy configuration of the service provider is included in the WSDL and is available to a WS-MetadataExchange GetMetadata request. An advantage of using the WS-MetadataExchange protocol is that we can apply message-level security to WS-MetadataExchange GetMetadata requests using a suitable system policy set.
If the service provider application uses multipart WSDL, all the WSDL must be local to the web service application. For more information about multipart WSDL, see the topic about WSDL.
You must configure a service provider to share its policy configuration because by default the policy configuration is not available in its WSDL. We can configure the service provider to include the policy configuration in its WSDL, to use WS-MetadataExchange so the policy configuration is available, or both. This topic describes how to configure a service provider to share its policy configuration using wsadmin commands. We can also use the dmgr console or Rational Application Developer tools.
We can configure a service provider to share its policy configuration at application or service level. The policy configuration that is represented by the policy sets attached to any lower levels will also be shared. Policy sets that are attached at lower levels override the policy set configuration attached at a higher level.
- Start the wsadmin scripting client if it is not already running.
- Use the SetProviderPolicySharingInfo command. For example:
AdminTask.setProviderPolicySharingInfo('[-applicationName WebServiceProviderApplication -resource WebService:/WebServiceProvider.war:{http://example_path/}Service1 -sharePolicyMethods [httpGet ]]')
- Save your changes to the master configuration.
To save your configuration changes, enter the following command:
AdminConfig.save()
Results
The policy configuration of the service provider is available to its clients. The WSDL of the service provider contains the current policy configuration in WS-PolicyAttachments format so that it is available to other clients, service registries, or services that support the Web Services Policy (WS-Policy) specification.If the policy configuration cannot be shared, an error that describes the problem is written to the service provider error log, and the following policy is attached to the WSDL of the service provider:
<wsp:Policy> <wsp:ExactlyOne> </wsp:ExactlyOne> </wsp:Policy>
This policy notifies the client there is no acceptable policy configuration for the service. Other aspects of the WSDL are unaffected.A service provider might not be able to share its policy configuration because the configuration cannot be expressed in the standard WS-PolicyAttachments format. One reason might be because multiple incompatible policies are defined for a particular attach point. Another reason might be because there is not enough binding information to generate the standard policy. Policy configuration might include bootstrap policy, for example, the policy to access a WS-Trust service, so the bootstrap policy must also be expressed in WS-PolicyAttachments format.
Optionally, we can publish the WSDL files.
Subtopics
- setProviderPolicySharingInfo command
Use the setProviderPolicySharingInfo command to set how an application or service that is a web service provider can share its policy configuration with other clients, service registries, or services that support the WS-Policy specification. We can set or remove this information about how a provider policy is shared.- getProviderPolicySharingInfo command
Use the getProviderPolicySharingInfo command to find out whether an application or service that is a web service provider can share its policy configuration, and list the properties that apply to sharing that configuration.
Related concepts:
Web service providers and policy configuration sharing
WS-Policy
WS-MetadataExchange requests
WSDL
Related
Use WS-Policy to exchange policies in a standard format
Configure security for a WS-MetadataExchange request
Deploy web services applications onto application servers
Configure the client policy to use a service provider policy using wsadmin.sh
Publishing WSDL files using wsadmin.sh
View WSDL documents for service providers
Start the wsadmin scripting client using wsadmin.sh
Reference:
WS-Policy commands for AdminTask
setProviderPolicySharingInfo command