# Web Service Features in Business Processes

This section covers some of the unique WebLogic Integration Web service features. The topics covered in this section are:

- General Features
- @jws (Web Service) Annotations
- JwsContext Interface

General Features

This section details how the following features work in conjunction with WebLogic Integration and details whether or not they are supported for WebLogic Integration. The links provide reference to the further information of each feature.

Accessing SOAP Attachments in Web Services | This feature is supported for all operations.
Specifying SOAP Handlers for a Web Service | This feature is only supported for read-only operations. For more information, see @jws:handler in @jws (Web Service) Annotations.
Generating SOAP Faults from a Web Service | This feature is supported for synchronous operations, but not for asynchronous operations. Note: For a SOAP fault to be returned to the JPD client, you must throw com.bea.jws.SoapFaultException instead of javax.xml.rpc.soap.SOAPFaultException. For more information, see SoapFaultException Class. Much like the Service control, the Service Broker control can throw a ServiceControlException class when a SOAP fault occurs. To access this SOAP fault, use the JPD's JpdContext.ExceptionInfo interface to see if the offending cause is a ServiceControlException. For more information on the ServiceControlException class, see "ServiceControlException Class" in com.bea.control Package. For more information on the JpdContext.ExceptionInfo interface, see "JpdContext.ExceptionInfo Interface" in com.bea.jpd Package. This feature can also be used to validate XML Schemas. For more information, see Validating Schemas.
WSDL Generation | This feature is generally supported for all operations. For more information on WSDL binding, see @jws:protocol in @jws (Web Service) Annotations.
Versioning Web Services | This feature is supported for all operations.
Supported Message Formats | It is recommended that supported message formats are carefully selected. For more information, see @jws:protocol in @jws (Web Service) Annotations.
Conversing with Non-WebLogic Workshop Clients | Use the SOAP <startheader>, <continueheader>, and <callbackheader> at your own risk.
Transport Security | This feature is supported for all operations.
Web Service Security | This feature is not supported for any operations. For more information, see @jws:ws-security in @jws (Web Service) Annotations.
Role-Based Security | This feature is supported for all operations.
Non-XML and non-primitive Java classes in WSDL | This feature is not supported for any operations.
XQuery Maps | When creating XQuery maps, you should always set the protocol before mapping. You should also be aware that http-soap="true" generates different maps than when http-soap="false".

@jws (Web Service) Annotations

A number of Web Service annotations are supported in WebLogic Integration business processes (JPD files). Web Service annotations are of the format @jws:name_of_annotation.

The following links provide reference to the Web Service annotations used in business processes:

Java Web Service Annotations include . . . |
@jws:conversation-lifetime | Specifies the maximum age and the maximum idle time for a service's conversations. See also, Managing Conversations.
@jws:handler | Specifies SOAP message handlers for a Web service. This annotation is only supported for read-only operations. Service Broker controls can add JAX-RPC handlers that are invoked before sending messages and before invoking callbacks via the @jws:handler annotation. Currently, there are no specifications available that describe exactly where within the runtime the handlers are invoked, and what happens if the handlers fail. For more information on adding JAX-RPC handlers, see "JAX-RPC and SOAP Handlers" in Specifying SOAP Handlers for a Web Service. It is recommended that you only use handlers for operations that don't modify the message, such as inspection and logging activities.
@jws:location | Specifies the URL at which a Web service control accepts requests for each supported protocol.
@jws:parameter-xml | Specifies characteristics for marshaling data between XML messages and the data in a Java declaration's parameters. JPDs can specify XML Query maps that are invoked before receiving requests and before sending callbacks, via the @jws:parameter-xml annotation inherited from WebLogic Workshop. For more information, see Transforming XML Messages with XQuery Maps. When working with this annotation, you should consider the following @jws:parameter-xml annotation attribute information: schema-element, xquery, xquery-ref, xml-map It is recommended that you do not use the above attributes. include-java-types It general, this feature works for all operations.
@jws:protocol | Specifies the protocols and message formats a Web service can accept or a Web Service control will send to the service it represents. When working with this annotation, you should consider the following @jws:protocol annotation attribute information: form-post and form-get When you generate a Service Broker control and build or deploy the process that includes the generated Service Broker control, and then send a document to the process using HTTP post, the WSDL generated for the HTTP-post protocol from the process definition (JPD) will be missing response message information. It is recommended that you do not use this feature. http-soap12 Currently, there is no specification available to describe how http-soap12 binding is implemented for JPDs. If you use this feature, you do so at your own risk. jms-soap Currently, there is no specification available that describes the JPD to WSDL mapping for http-soap. If you use this feature, you do so at your own risk. java-call The java-call attribute has been deprecated and is ignored.
@jws:reliable | Specifies that a Web service should use reliable messaging, and specifies how long messages must be retained by the server in order to perform detection and removal of duplicates. Once you have specified that the Web service should use reliable messaging, you can then enable or disable it for a given method. When you generate a Service Broker control with a @jws:reliable annotation, the generated WSDL <operation> tags have no SOAP header declarations. However, in reality, the SOAP messages that will be generated by this control will have SOAP headers. This annotation is not supported in this release.
@jws:wsdl | Specifies a WSDL file that is implemented by a Web service.
To learn about all the @jws annotations, see Web Service Annotations. Note: WS-Security policy (WSSE) files are not supported for business processes (JPDs). Therefore, the following annotations are not supported for JPD files: @jws:ws-security-callback and @jws:ws-security-service. To learn more about WSSE in Web services, see WS-Security Policy File Reference.

JwsContext Interface

This section provides information about the some of the methods associated with the com.bea.control.JwsContext Interface. The JwsContext Interface provides access to container services that support Web services (JWS files). For more information, see "JwsContext Interface" in com.bea.control Package.

setUnderstoodInputHeaders() method | This method is not supported for asynchronous operations.
setCalbackLocation() method | This method is not supported for Process Control callbacks.