У меня сложное веб-приложение, которое использует множество веб-сервисов.Я должен начать использовать новый.WSDL этой новой службы определяет целевое пространство имен, которое почти совпадает с пространством имен, используемым в более раннем WSDL.Отличается только часть после последней точки.
Имена пакетов, выведенные JAXB, для них одинаковы, а объектная фабрика, сгенерированная из второй, перезаписывает другую.
Например, один wsdlимеет целевое пространство имен "http://foo.com/a.b.c",, у другого -" http://foo.com/a.b.c_2". Тогда имя пакета java будет com.foo.ab для обоих пространств имен, что является своего рода коллизией.
Iпроверил спецификацию JAXB и нашел это (https://download.oracle.com/otn-pub/jcp/jaxb-2.0-fr-eval-oth-JSpec/jaxb-2_0-fr-spec.pdf?AuthParam=1542978637_f7c18a1892b0ff022071acdab6259bdd):
D.5.1 Отображение из URI пространства имен Пространство имен XML представлено URI.Поскольку пространство имен XML будет отображаться в пакет Java, необходимо указать отображение по умолчанию из URI в имя пакета Java.Формат URI описан в [RFC2396].Следующие шаги описывают, как сопоставить URI с именем пакета Java.Пример URI, http://www.acme.com/go/espeak.xsd, используется для иллюстрации каждого шага.
Удалите схему и часть ":" из начала URI, если таковой имеется.Поскольку не существует формального синтаксиса для идентификации необязательной схемы URI, ограничьте удаляемые схемы проверками без учета регистра для схем «http» и «urn».
// www.acme.com/go/espeak.xsd
Удалить конечный тип файла, один из. ??или же .???или .html.
// www.acme.com/go/espeak
...
Возможно, для меня есть обходные пути, но я бы хотел, чтобы поставщик веб-служб "исправил" ситуацию, используя "правильные" пространства имен, которые не отличаются только последней частью (расширение имени файла на языке JAXB?).
Я ищу аргументы для "моего дела".