Annotations serve two purposes. Firstly, they affect the WSDL file that will be generated for the service. Secondly, they provide deployments and runtime information to the container.
For example, you can use the @WebService annotation to specify the WSDL file's target namespace. You can also use the @SOAPBinding annotation to specify the style/use configuration of the service messages, for example, document/literal or rpc/literal.
Before there were annotations, web services were deployed with a standard deployment descriptor, accompanied by service-specific descriptors. This can now be replaced by annotations. For example, the location of the WSDL file in the deployed archive can now be specified through the wsdlLocation attribute of the @WebService annotation. Likewise, message handlers can be configured using annotations, instead of including them in the deployment descriptor.