I have seen many posts on this issue. People offered different solutions. Here is how I figured out my solution.
When an EBS is generated based on WSDL from Oracle MDS, it's very likely that your EBS will not have a locally associated WSDL or XSD (I figure if you choose to copy WSDL to local project folder, if that's an option in JDeveloper wizard, you may get a local duplicate of the WSDL from MDS).
After EBS is deployed, now you create a Web Service call to this EBS in your Requester process. However, since the EBS doesn't have an associated abstract WSDL on the deployment server (unlike other typical BPEL process), so your JDeveloper will treat the call as an external web service call, therefore, generate a "xxxRef.WSDL" for your EBS call. Also JDeveloper inserted two a few concrete WSDL references in the project. And two of these places really mattered for me, in order for my Requester process to auto deploy on server restart.
Here are the two places I had to change to make it work.
1.In composite WSDL I had to make this change (the high lighted wsdlLocation used to point to concrete WSDL)
<reference ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/EnterpriseBusinessServiceLibrary/Industry/Utilities/EBO/MeterReading/V1/UtilitiesMeterReadingEBSV1.wsdl" name="UtilitiesMeterReadingEBS">
<interface.wsdl interface="http://xmlns.oracle.com/EnterpriseServices/Core/MeterReading/V1#wsdl.interface(UtilitiesMeterReadingEBS)" xmlns:ns="http://xmlns.oracle.com/sca/1.0"/>
<binding.ws port="http://xmlns.oracle.com/EnterpriseServices/Core/MeterReading/V1#wsdl.endpoint(CreateMeterReadingEBS/UtilitiesMeterReadingEBS_pt)" location="http://soadev.example.com:7001/soa-infra/services/Foo/CreateMeterReadingEBS/CreateMeterReadingEBS?WSDL" xmlns:ns="http://xmlns.oracle.com/sca/1.0"/>
2. Inside "xxxRef.WSDL" where location used to point to concrete WSDL:
That's about it. Redeploy, and it worked for me.