Certain JAX-WS endpoints ought to follow the following requirements and these are as follows:
The class that will be annotated must be annotated using the javax.jws. Webservice; or alternatively, the javax.jws.WebServiceProvider annotation. Secondly, having a JAX-WS endpoint requires that the implementing class have an explicit reference through the endpoint Interface element of the @Webservice annotation. However, contrary to what you may think, it is not required to do so. An SEI will be implicitly defined for the implementing class if it is provided that no endpoint Interface is going to be specified in the WebService. Thirdly, another requirement for having a JAX-end endpoint is that the business methods of the implementing class shout strictly be public, and should, at all costs, not be declared static or final. Furthermore, business methods are required to be exposed to web service clients. These business methods also ought to be exposed to web service clients and have JAXB-compatible parameters and certain return types. Surely, it will be a very helpful tool to aspiring businessmen as well. It may sound complicated but is definitely very useful. In addition, the implementing class must not be made abstract, and should be declared unfinal. It should not, more importantly define the finalize method, but instead, have a default public constructor. In doing so, the implementing class may use the javax.annotation.PostConstruct of the javax.annotation.PreDestroy annotations for lifecycle event callbacks. This method is usually called in by the container before the implementing class can even begin to respond to the web service clients.