Пара частей на этот вопрос:
1) Согласно спецификации JAX-WS, сгенерированный код не имеет ALL информации, необходимой для запроса. Таким образом, wsdl технически необходим. С помощью CXF вы МОЖЕТЕ передать «null» для URL-адреса wsdl, а затем использовать порт ((BindingProvider)) .getRequestContext (). Put (BindingProvider.ENDPOINT_ADDRESS_PROPERTY, «http://localhost/....")» для установки адреса и для многих случаев использования это будет работа.
2) У инструмента wsdl2java есть флаг -wsdlLocation, который можно использовать для создания сервисных объектов с определенным расположением. -wsdlLocation "" не должно приводить к сожжению кода. Тогда код не был бы действительно переносимым. (JAXWS ri / metro требует wsdl)