Sie können die Datei ibm-ws-bnd.xml verwenden, um Web-Service-Endpunkte
für Server-Provider und -Client innerhalb Ihrer Anwendungen anzupassen.
Vorbereitende Schritte
Die Datei
ibm-ws-bnd.xml muss im Verzeichnis /WEB-INF einer
webbasierten Web-Service-Anwendung (WAR-Datei) oder im Verzeichnis
/META-INF einer EJB-basierten Web-Service-Anwendung (JAR-Datei) enthalten sein.
Wenn der Client in clientContainer ausgeführt wird, muss die Datei ibm-ws-bnd.xml
im Verzeichnis /META-INF der JAR-Datei in der Client-EAR-Datei enthalten sein.
Informationen zu diesem Vorgang
Indem Sie die Datei ibm-ws-bnd.xml konfigurieren, können Sie die Web-Service-Adresskonfigurationen
sowohl im Service-Provider als auch im Servicekonsumenten überschreiben, ihre Web-Services durch Verwendung eines bestimmten URL in Ihren in Liberty implementierten Anwendungen exportieren und die Web-Services aus JAX-WS-Clientanwendungen importieren.
Informationen zu allen verfügbaren Elementen, die Sie innerhalb der Datei ibm-ws-bnd.xml
konfigurieren können, finden Sie unter Liberty: Datei "ibm-ws-bnd.xml".
Vorgehensweise
- Überschreiben Sie Web-Service-Bindungen für Service-Provider.
- Überschreiben Sie die Web-Service-Endpunktadresse. Im Element webservice-endpoint können Sie die Endpunktadresse eines vom Attribut
port-component-name angegebenen Web-Service-Endpunkts überschreiben. Das Attribut address Attribut gibt den relativen Pfad zum Kontextstammverzeichnis Ihrer Anwendung an.
<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<!-- Beliebig viele Endpunktbeschreibungen -->
<webservice-endpoint port-component-name="Hello" address="/hiService" />
</webservices-bnd>
- Überschreiben Sie das Kontextstammverzeichnis für EJB-basierte Web-Services. Wenn der Web-Service EJB-basiert und in einer EJB-Anwendung (Java-Archiv, JAR) definiert ist, entspricht das Standardstammverzeichnis
dem EJB-JAR-Namen. Allerdings können Sie den Standardwert mit dem Attribut
context-root des Elements http-publishing überschreiben.
<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<!-- HTTP-Veröffentlichungsmodul überschreiben - optional -->
<http-publishing context-root="/HiServer" />
</webservices-bnd>
Anmerkung: Das Attribut context-root wird nur wirksam, wenn der Web-Service EJB-basiert und in einem EJB-Java-Archiv definiert ist. Wenn der Web-Service
in einer Webanwendung (Webarchiv, WAR) definiert ist, unabhängig davon, ob es sich um einen EJB-basierten Web-Service handelt,
wird das Attribut context-root des Elements http-publishing ignoriert, und
als Kontextstammverzeichnis wird immer das Kontextstammverzeichnis der Webanwendung verwendet.
- Überschreiben Sie Web-Service-Bindungen für Clientanwendungen.
- Überschreiben Sie die Position des WSDL-Dokuments. Im service-ref Element, Sie können die WSDL-Position einer Web-Service-Referenz innerhalb einer Web-Service-Clientanwendung überschreiben.
<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<service-ref name="services/hello" wsdl-location="http://localhost:9080/HiServer/hiService?wsdl" />
</webservices-bnd>
Das Attribut wsdl-location gibt einen absoluten URI (entweder Protokoll "HTTP" oder "file") an,
kann aber auch ein relativer URI zum Stammverzeichnis der Clientanwendung sein. Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<service-ref name="services/hello" wsdl-location="WEB-INF/wsdl/hiService.wsdl" />
</webservices-bnd>
- Überschreiben Sie die Portadresse. Im Element port können Sie die Adresse eines Ports innerhalb einer Web-Service-Referenz in einem Web-Service-Client überschreiben.
<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<service-ref name="services/hello" wsdl-location="WEB-INF/wsdl/hiService.wsdl">
<port name="HelloPort" namespace="http://server.ejb.hello.sample.jaxws.ws.ibm.com/"
address="http://localhost:9080/HiServer/hiService" />
</service-ref>
</webservices-bnd>
Das Attribut address des Elements port gibt den absoluten URI
eines Web-Service-Ports an. Wenn der referenzierte Web-Service nur einen Port hat, können Sie das Attribut port-address
des Elements service-ref verwenden. Beispiel:
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<service-ref name="services/hello"
port-address="http://localhost:9080/HiServer/hiService" />
</webservices-bnd>
Anmerkung: Wenn sowohl das Attribut port-address des Elements service-ref als auch
das Attribut address des Elements port angegeben sind, wird das Attribut address
des Elements port wirksam.