I have created a web-application with couple of webservices using netbeans. I made a build, deployed it. Using the wsdl file, I created a client for each of the webservices. Furthur, I wrote some JSPs which called these clients (thus webservices were invoked.). Finally, I used "Run" to run the application. Everything worked fine. One of the webservice is used to insert in DB, other to read data from DB etc. All went well.

Then without making any changes, I happened to use "Clean-build" instruction and then "Deploy" and finally "Run" again. The webservices were not working this time. I drilled down the application setup and concluded that the WSDL is not available to the application. If I try to create a new client for the webservices , I get a message "WSDL*file*not*available*(web*service*not*deployed )." I tried browsing the WSDL in the browser (http://localhost:8080/Mywebservice/InsertWS?wsdl), it give me HTTP 404 error(The requested resource is not available.) However, I noticed WSDL is present under WebPages/web-inf/wsdl/localhost:8080/Mywebservice node in the Project tab of netbeans.

To solve this problem, I tried this :
1. Deleted the WSDL from the above location
2. Deleted the web-service references from the "Web Service References" node.
3. Used "Generate and copy WSDL" command to recreate the WSDL and placed it under WebPages/web-inf/wsdl/localhost:8080/Mywebservice.
4. Deployed the application.
5. Re-created the clients using this new WSDL. (This created the necessary artifacts again
6. Run the program.

Everything worked fine again.

Then to test, I again did a clean-build, deploy and run. Again same problem. WSDLs are not located by the application.

Repeated the above steps again and services were working fine again.

I alternated these procedures multiple times and I encountered the same problem and solution.

Can anyone help me understand why is the WSDL not available after I do a "clean-build" and "deploy" though all artifacts are still present under the relevant nodes