It depends on the type of webservice you need to expose and consume:
For exposing SOAP based webservices, you can use some strategies,
1) Proxying webservices with Protocol Bridging or WSProxyService
https://docs.mulesoft.com/mule-user-guide/v/3.7/proxying-web-services
2) Proxying webservices with CXF
https://docs.mulesoft.com/mule-user-guide/v/3.7/proxying-web-services-with-cxf
3) Building a webservice with CXF
https://docs.mulesoft.com/mule-user-guide/v/3.7/building-web-services-with-cxf
For exposing RESTful webservices, you should design a RAML and then use the APIKit component
http://raml.org/
https://docs.mulesoft.com/anypoint-platform-for-apis/apikit-tutorial
For consuming SOAP based webservices, you should use the Webservice Consumer component
https://docs.mulesoft.com/mule-user-guide/v/3.7/web-service-consumer
For consuming REST webservices, you should use the HTTP Request Connector :
https://docs.mulesoft.com/mule-user-guide/v/3.7/http-request-connector
So, if you want to expose a SOAP webservice (not a proxy service), that internally consumes a SOAP webservice, you can use:
HTTPListener->CXF->WebserviceConsumer
If you want to expose a webservice proxy you can use the ProtocolBridging or CXF strategy.
If you want to expose a REST webservice, that internally consumes a REST webservice, you can use:
HTTPListener->APIKit->HTTPRequest
And so on..