...
If you are using a SOAP binding for your service, you can use JAX-WS annotations to specify a number of the bindings properties. These properties correspond directly to the properties you can specify in a service's WSDL contract.
The @SOAPBinding
annotation
The @SOAPBinding
annotation is defined by the javax.jws.soap.SOAPBinding
interface. It provides details about the SOAP binding used by the service when it is deployed. If the @SOAPBinding
annotation is not specified, a service is published using a wrapped doc/literal SOAP binding.
...
- what the exchanged messages look like in XML.
- if the message can be optimized as a one way message.
- the namespaces where the messages are defined.
The @WebMethod
annotation
The @WebMethod
annotation is defined by the javax.jws.WebMethod
interface. It is placed on the methods in the SEI. The @WebMethod
annotation provides the information that is normally represented in the wsdl:operation
element describing the operation to which the method is associated.
...
Property | Description |
---|---|
operationName | Specifies the value of the associated |
action | Specifies the value of the |
exclude | Specifies if the method should be excluded from the service interface. The default is |
The @RequestWrapper
annotation
The @RequestWrapper
annotation is defined by the javax.xml.ws.RequestWrapper
interface. It is placed on the methods in the SEI. As the name implies, @RequestWrapper
specifies the Java class that implements the wrapper bean for the method parameters that are included in the request message sent in a remote invocation. It is also used to specify the element names, and namespaces, used by the runtime when marshalling and unmarshalling the request messages.
...
Tip | ||
---|---|---|
| ||
Only the |
The @ResponseWrapper
annotation
The @ResponseWrapper
annotation is defined by the javax.xml.ws.ResponseWrapper
interface. It is placed on the methods in the SEI. As the name implies, @ResponseWrapper
specifies the Java class that implements the wrapper bean for the method parameters that are included in the response message sent in a remote invocation. It is also used to specify the element names, and namespaces, used by the runtime when marshalling and unmarshalling the response messages.
...
Tip | ||
---|---|---|
| ||
Only the |
The @WebFault
annotation
The @WebFault
annotation is defined by the javax.xml.ws.WebFault
interface. It is placed on exceptions that are thrown by your SEI. The @WebFault
annotation is used to map the Java exception to a wsdl:fault
element. This information is used to marshall the exceptions into a representation that can be processed by both the service and its consumers.
...
Note | ||
---|---|---|
| ||
The |
The @OneWay
annotation
The @OneWay
annotation is defined by the javax.jws.OneWay
interface. It is placed on the methods in the SEI that will not require a response from the service. The @OneWay
annotation tells the run time that it can optimize the execution of the method by not waiting for a response and not reserving any resources to process a response.
Example
#Example7 shows an SEI whose methods are annotated.
...
The method parameters in the SEI coresspond to the wsdl:message
elements and their wsdl:part
elements. JAX-WS provides annotations that allow you to describe the wsdl:part
elements that are generated for the method parameters.
The @WebParam
annotation
The @WebParam
annotation is defined by the javax.jws.WebParam
interface. It is placed on the parameters on the methods defined in the SEI. The @WebParam
annotation allows you to specify the direction of the parameter, if the parameter will be placed in the SOAP header, and other properties of the generated wsdl:part
.
...
Property | Values | Description |
---|---|---|
name |
| Specifies the name of the parameter as it appears in the WSDL. For RPC bindings, this is name of the |
targetNamespace |
| Specifies the namespace for the parameter. It is only used with document bindings where the parameter maps to an XML element. The defaults is to use the service's namespace. |
mode | | Specifies the direction of the parameter. |
header | | Specifies if the parameter is passed as part of the SOAP header. |
partName |
| Specifies the value of the name attribute of the |
The @WebResult
annotation
The @WebResult
annotation is defined by the javax.jws.WebResult
interface. It is placed on the methods defined in the SEI. The @WebResult
annotation allows you to specify the properties of the generated wsdl:part
that is generated for the method's return value.
...
Property | Description |
---|---|
name | Specifies the name of the return value as it appears in the WSDL. For RPC bindings, this is name of the |
targetNamespace | Specifies the namespace for the return value. It is only used with document bindings where the return value maps to an XML element. The defaults is to use the service's namespace. |
header | Specifies if the return value is passed as part of the SOAP header. |
partName | Specifies the value of the name attribute of the |
Example
#Example8 shows an SEI that is fully annotated.
...