lista dostepnych webserwisow

0

hej, musze zrobic cos - i tutaj pytanie do Was, bo nie wiem co :) - co zwroci mi liste dostepnych webserwisow. Do generowania webserwisow korzystam z axis2. nie chce listy dostepnych uslug, tzn nie chce listy metod typu:

metodaWebservice1();
metodaWebservice2();
metodaWebservice3();

tylko chcialabym liste klas ktore je wygenerowaly. tj:

Klasa1
Klasa2
Klasa3

szczerze, nie wiem czego sie uzywa do takiej uslugi? czy moge normalnie z j2se odwolac sie jakos (jak?) i pobrac te liste? czy to musi byc webserwis, ktory jak go odpytam to zwroci mi te liste?

      bede wdzieczna za wszystkie wskazowki,
         pzdr,
                    misty
0

We wszystkich serwisach udostępniających WS z jakimi miałem do czynienia była osobna funkcja, która zwracała listę dostępnych funkcji, więc podejrzewam, że sama musisz taką napisać.

0

dobra, ale jak sie programowo dostac do tej listy?

0

Nie korzystałem nigdy z axisa ale jeśli to ma być lista klas to nie możesz po prostu otworzyć JAR'a i wypisać listę plików z paczki, w której są klasy generujące WS ?

0

Jeśli dobrze kojarzę, to takiej metody nie powinno być bo WS nie są ograniczone tylko do Javy, serwer może wykorzystywać np PHP.

0

eeee, nie to w ogole nie o to chodzi. taka lista ma byc dostepna dla roznych aplikacji. poza tym ze jest klasa, nie oznacza ze w tym momencie udostepnia ona usluge.

donkey7 - czy wobec tego, moge to rozumiec tak, ze te webserwisy maja sie rejestrowac do tego mojego managera? i na tej podstawie dostane liste dostepnych uslug?
czy moze znasz jakis lepszy sposob? bo ten co napisalam to musialby uwzgledniac jeszcze:

  • wyrejestrowywanie sie (to ok)
  • odzywanie sie co minute (czesciej? rzadziej?) w celu informowania managera ze zyje i nie wystapila sytuacja wyjatkowa - ale to mi sie srednio podoba

bede wdzieczna za wszelkie pomysly :)

pzdr

0

Mi chodziło o to, że po stronie serwera implementujesz usługę, która zwraca listę dostępnych funkcji, wtedy nie ma znaczenia, kto będzie ją odpytywał. Jeśli chodzi o stworzenie takiej listy, to możliwości jest cała masa: edycja ręczna, przeglądania JAR'a, który zawiera udostępniane usługi(można się wspomagać adnotacjami) czy zewnętrzny plik XML ze spisem usług.
W ten sposób, każda aplikacja używająca Twoich usług, musi wiedzieć tylko o tej 1 usłudze, która zwróci opis pozostałych.

0

Chodziło mi o to, że serwer który udostępnia SOAP/ WSDL może być napisany w czymkolwiek nie tylko w Javie. Co ci z tego że dostaniesz np plik PHP jeśli piszesz w Javie?

To chyba manager odpytuje WS. No chyba że manager też jest WS to nawzajem odpytują.

Do czego ci te WS potrzebne? Może lepiej będzie tutaj zastosować JMX?

0

To, co jest Ci potrzebne, to repozytorium UDDI (http://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integration).

Ze swojej strony polecam CentraSite Community Edition
http://www.infoq.com/zones/centrasite/download/centrasite

Najpierw rejestrujesz tam serwisy, a później możesz przez www CentraSite zobaczyć, na którym serwerze jest udostępniany ten serwis, jakie parametry przyjmuje, możesz też pobrać wsdl i wiele innych.
Dostęp do repozytorium masz nie tylko przez www, ale też przez serwis wystawiany przez CentraSite. Jest też wtyczka do Eclipsa, dzięki której możesz w nim przeglądać udostępnione serwisy.

Jeżeli Ci to nie wystarczy i chciałbyś uniezależnić konsumentów i producentów serwisów, to zapoznaj się szynami ESB (http://en.wikipedia.org/wiki/Enterprise_service_bus), np. apache servicemix, czy web methods.

0

__krzysiek85, to ja wlasnie musze napisac taki programik ktory bedzie zwracal te liste, nie moge korzystac z niczego z zewnatrz. Jesli chodzi o ESB, to obilo mi sie kiedys o uszy cos takiego jak Java Fuse. ponoc jakis mega hard core. wiec sie nie tykam na razie bo czasu mam malo. ogolnie z tego co sie dokopalam to axis2 ma mozliwosc pobrania listy webserwisow:

axisConfiguration.getServices() = zwraca hash mape w ktorej sa webserwisy. niestety axisConfiguration przyjmuje 2 parametry - jeden to sciezka do WEB-INF axis2, drugi to sciezka do pliku axis2.xml. Mi jednak caly czas zwraca ze lista serwisow = 0, wiec prawdopodobnie w axis2.xml trzeba cos dopisac. ale pierwszy parametr to jednak inna sciezka. nie wiem. temat na tyle rzadki i waski w google ze sie poddalam. napisalam zwykly serwlet co parsuje strone. ogolnie pod localhost:8080/axis2/services/listServices jest ta lista, wiec nalezy stronke tylko sparsowac. a jest na tyle prosta, ze w sumie taki programik to chwila.

  pzdr i dzieki za wszystkie posty. Jesli komus z Was uda sie kiedykolwiek rozgryzc zagadke z axisConfiguration, chetnie przeczytam jak :)

       misty
0
misty napisał(a)

axisConfiguration.getServices() = zwraca hash mape w ktorej sa webserwisy. niestety axisConfiguration przyjmuje 2 parametry - jeden to sciezka do WEB-INF axis2, drugi to sciezka do pliku axis2.xml. Mi jednak caly czas zwraca ze lista serwisow = 0, wiec prawdopodobnie w axis2.xml trzeba cos dopisac. ale pierwszy parametr to jednak inna sciezka. nie wiem.
//...
pzdr i dzieki za wszystkie posty. Jesli komus z Was uda sie kiedykolwiek rozgryzc zagadke z axisConfiguration, chetnie przeczytam jak :)

       misty
public String getServices() {
	//...
	MessageContext mctx = MessageContext.getCurrentMessageContext();
	AxisConfiguration axisConfiguration = mctx.getConfigurationContext().getAxisConfiguration();
		
	Map<String, AxisService>services = axisConfiguration.getServices();	

	for(String key : services.keySet()) {
		AxisService as = services.get(key);
		//... append to servicesXml
	}
	return servicesXml;
}

Powyzszy kod zwroci wszystkie WebService'y (wlacznie z nieaktywnymi) dla danego kontenera. Dostajesz AxisService, wiec nie powinno byc problemu z uzyskaniem szczegolow danej uslugi.

misty napisał(a)

temat na tyle rzadki i waski w google ze sie poddalam. napisalam zwykly serwlet co parsuje strone. ogolnie pod localhost:8080/axis2/services/listServices jest ta lista, wiec nalezy stronke tylko sparsowac. a jest na tyle prosta, ze w sumie taki programik to chwila.

Na stronie Axis2 sa wystawione zrodla.

1 użytkowników online, w tym zalogowanych: 0, gości: 1