Несколько веб-сервисов с одинаковым корневым контекстом - PullRequest
0 голосов
/ 18 января 2019

Я обновляю веб-службы, использующие java EJB и wer, установленные в WebLogic 8.1, до веб-служб JAX-RPC в WebLogic 12c (версия сервера WebLogic: 12.2.1.3.0)

Это несколько WS в одном проекте с одинаковым контекстным корнем. Таким образом, адрес для каждого типа:

[server]:[port]/services/ws1
[server]:[port]/services/ws2
[server]:[port]/services/ws3
...

В моей разработке я не могу установить один и тот же контекст / путь "services" для всех веб-служб.

Возможно ли иметь одинаковый корень контекста для всех них? (Как в примере выше?)

Подробное описание: Я получил «Проект Weblogic Web Services» (Eclipse-> новый проект -> Oracle-> WebLogic-> Web Services-> Project Web Project) с несколькими веб-службами.

Веб-службы были созданы из каждого WSDL с ANT wsdlc. Поэтому я получил "ws.jar" (скомпилированный WSDL) и wsImpl.java (где я положил свой бизнес-код)

Итак, окончательный список «исходных файлов» выглядит так:

ws1.jar
wsImpl1.java
ws2.jar
wsImpl2.java
ws3.jar
wsImpl3.java
...

Затем я пытаюсь запустить ANT jwsc с несколькими jws, по одному для каждой WS, предоставляя им все contextpath = "services". Когда он доходит до второго jws, я получаю ошибку «Службы контекстного пути для веб-приложения my / package / ws2.war уже используются этим приложением».

<target name="build-service">
    <jwsc srcdir="${src.dir}" destdir="${final.dir}/wars" verbose="true" keepGenerated="false" debug="on" includeantruntime="false">
    <classpath refid="project.class.path.build.services" />

    <jws file="my/package/ws1Impl.java" compiledWsdl="${output.dir}/compiledWsdl/ws1.jar">
        <WLHttpTransport contextpath="services" serviceuri="ws1" portname="ws1Port" />
    </jws>
    <jws file="my/package/ws2Impl.java" compiledWsdl="${output.dir}/compiledWsdl/ws2.jar">
        <WLHttpTransport contextpath="services" serviceuri="ws2" portname="ws2Port" />
    </jws>

        </jwsc>
</target>

1 Ответ

0 голосов
/ 18 января 2019

Folowing @EmmanuelCollin comment Мне удалось улучшить поиск и найти решение, используя

<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 и успешно протестировал ответ Web-сервисов. Все в одном контексте.

Спасибо!

...