Несколько веб-сервисов с одинаковым корневым контекстом

Правила разрешения имен говорят, что поиск имен прекращается в первой области, в которой найдено совпадающее имя. В этот момент правила разрешения перегрузки срабатывают, чтобы найти наилучшее соответствие доступных функций.

В этом случае gogo(int*) найден (один) в области Derived класса, и поскольку стандартного преобразования нет от int до int *, поиск не выполняется.

Решение состоит в том, чтобы принести объявления Base с помощью объявления using в классе Derived:

using Base::gogo;

... позволило бы правила поиска имен для поиска всех кандидатов и, следовательно, разрешение перегрузки будет продолжаться, как вы ожидали.

0
задан Drew 18 January 2019 в 13:57
поделиться

1 ответ

Следуя комментариям @EmmanuelCollin, я смог улучшить поиск и нашел решение, используя

<module contextPath="services" name="myJar" >
   <jws .../>
   <jws .../>
</module>

, как в: Справочный центр Oracle »Пример 4 Упаковка нескольких веб-сервисов в Один файл WAR "

Затем я упаковал сгенерированные файлы aplication.xml и .war в файл .ear с помощью ANT:

<ear destfile="${dist.dir}/${ant.project.name}.ear" appxml="${conf.dir}/application.xml">  
 <metainf dir="${build.dir}/META-INF"/> 
 <fileset dir="${dist.dir}" includes="*.jar,*.war"/>
</ear>

Наконец, развернул .ear на сервере weblogic 12c и успешно протестировал ответ веб-сервисов. Все в одном контексте.

Спасибо!

0
ответ дан Drew 18 January 2019 в 13:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: