Проблема привязки сервера Websphere wsdl ко второму файлу WAR - PullRequest
0 голосов
/ 06 июня 2018

Ранее у нас было одно приложение, скажем, abc.ear, в котором JAX-RPC всегда работал нормально.Теперь у нас есть еще одно приложение.

Previous Scenario - 
abc.ear
    -first.war
    -beans.jar

Current Scenario - 
abc.ear
    -first.war
    -beans.jar
    -second.war

И тут возникает проблема.После развертывания в websphere генерируется wsdl для second.war, а не для first.war.

Что я заметил в application.xml, у нас есть записи как для WAR, так и для WSDLвсегда для второй записи.

Application.xml

<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_ID" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
    <display-name>abc</display-name>
    <module id="WebModule_1049898749936">
        <web>
            <web-uri>first.war</web-uri>
            <context-root>/firstContext</context-root>
        </web>
    </module>
     <module id="WebModule_1049898749937">
        <web>
            <web-uri>second.war</web-uri>
            <context-root>/secondContext</context-root>
        </web>
    </module>
    <module id="EjbModule_1049898671780">
        <ejb>beans.jar</ejb>
    </module>
    <security-role id="SecurityRole_1049898749936">
        <description>abcSecurityRole</description>
        <role-name>abcSecurityRole</role-name>
    </security-role>
</application>

Всякий раз, когда я обращаюсь к службе WSDL для первого контекста / firstContext / services, локальный хост и имя порта преобразуются в имя сервера и порт.

<wsdlsoap:address location="http://localhost:9081/firstContext/services/WsSessionEJBEndPointBean"/>

Но локальный хост и порт не разрешаются для secondContext при получении доступа к службе WSDL.Я пропускаю какую-либо запись?

Это из-за того, что routerModule не генерируется в ibm-webservices-bnd.xmi для second.war?Я добавил его вручную.

<?xml version="1.0" encoding="UTF-8"?>
<com.ibm.etools.webservice.wsbnd:WSBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:com.ibm.etools.webservice.wsbnd="http://www.ibm.com/websphere/appserver/schemas/5.0.2/wsbnd.xmi" xmi:id="WSBinding_1161041065182">
  <wsdescBindings xmi:id="WSDescBinding_1354375783544" wsDescNameLink="WsSessionEJBEndPointBeanService">
    <pcBindings xmi:id="PCBinding_1354375783544" pcNameLink="WsSessionEJBEndPointBean"/>
  </wsdescBindings>
  <routerModules xmi:id="RouterModule_1161041070381" transport="http" name="first.war"/>
  <routerModules xmi:id="RouterModule_1161041070381" transport="http" name="second.war"/>
</com.ibm.etools.webservice.wsbnd:WSBinding>

Также возможно ли иметь два разных ресурсных модуля с одинаковым транспортом?

...