Mam usługę sieciową wygenerowaną przez program wsgen za pośrednictwem programu maven. Po wdrożeniu usługi Glassfish umieszcza adres URL serwera w WSDL. Nasz serwer Glassfish jest obsługiwany przez serwer proxy Apache.Zastąp wartość generowanego adresu usługi WSDL usługi Glassfish
Co to wszystko znaczy, gdy ktoś ma dostęp naszą WSDL i patrzy na końcowym usług i lokalizacja adres mydło widzą to
http://app server url/service...
zamiast
http://proxy server url/service...
Chyba potrzebuję trochę wyjaśnień na kilka pozycji ...
Czy ten adres punktu końcowego jest ważny? Czy klienci będą mogli nadal działać, jeśli adres punktu końcowego nie pasuje do adresu URL serwera proxy, który będą wywoływać w celu wywołania usługi. To zasadniczo zadaje pytania "jest WSDL do usługi internetowej jako interfejs jest do obiektu".
UPDATE: W odpowiedzi na to pytanie pierwsze wydaje się, że "WSDL do serwisu WWW jako interfejs jest sprzeciw". Adres punktu końcowego określony w pliku WSDL nie jest ważny. W rzeczywistości stosunkowo proste jest wywoływanie operacji usługi sieci Web na innym punkcie końcowym niż ten określony w dokumencie WSDL as described here.
// Create service and proxy from the generated Service class. HelloService service = new HelloService(); HelloPort proxy = service.getHelloPort();
// Override the endpoint address ((BindingProvider)proxy).getRequestContext().put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, " http://new/endpointaddress "); proxy.sayHello("Hello World!");
WSDL jest generowany automatycznie, gdy wdrożyć do GlassFish. Czy istnieje prosty sposób na przesłonięcie tego wygenerowanego adresu końcowego w Glassfish poprzez ustawienie serwera aplikacji. Jeśli tak, mogę utworzyć ustawienie automatycznego umieszczania adresu URL serwera proxy w wygenerowanym pliku WSDL.
Jeżeli 1 jest rzeczywiście ważne i nie możemy zastąpić go w żaden sposób z 2, to w zasadzie oznacza, że musimy zrobić oddzielny buduje dla rozwoju i produkcji. To nie "czuje się dobrze", ponieważ wydaje mi się, że jedyną rzeczą, którą powinniśmy zrobić, aby wdrożyć na innym serwerze, jest upuszczenie istniejącej (i przetestowanej) wojny z jednego środowiska na nowy serwer.