Witam! Chciałem się dowiedzieć czy możliwa jest poprawna współpraca Webserviców utworzonych w Netbeansie ( moja wersja to 5.5.1 ) oraz klientem utworzonym w Delphi. Problem wygląda tak. Sam webservice jest BANALNY ( na razie ) i wygląda tak:
/*
NewWebService.java</li> </li> Created on 6 styczeń 2008, 02:53</li> </li> To change this template, choose Tools | Template Manager</li> and open the template in the editor.*/</li> </ul>
package paka;
import javax.jws.WebService;
import javax.management.StringValueExp;
/**
*
@Author Zbyszek
*/
@WebService()
public class NewWebService {
public int funkcja1(int wartosca, int wartoscb)
{
return (wartosca+wartoscb);
}
</li> </ul>}
No i teraz zaczynają się schodki. Delphi 7 W OGÓLE nie chce poprawnie importować WSDLa - ksztusi się i dusi w momencie kiedy trzeba przekonwertować zmienne typu int ALBO JAKIEKOLWIEK INNE które nie wyglądają jak borlandowskie :/ no ok rozumiem - był rok 2002 nie wszystko było idealne. Ale wziąłem sobie Delphi 2007 no i teraz tak:
-
zmienne konwertują się już normalnie ( co prawda String z javy konwertowany jest na WideString - po co nie wiem, a w WSDLu czasem POMIMO ŻE JEST JUŻ DOBRZE PRZEKONWERTOWANE pojawiają się informacje o nieznanych zmiennych typu String lub Int :) ale Delphi je jednak dobrze rozpoznaje i zamienia na swoje zmienne )
-
PROBLEM w tym że nie potrafię przekzać POPRAWNIE do funkcji w webservicie - tutaj - funkcja1 argumentów z poziomu Delphi :/ - Używając komponentu HTTPRIO i ustwaiając tam wszystkie wartości - czyli service, port itd. potrafię odebrać wartość funkcji w momencie gdy zwraca ona konkretne wartości np.
-
Stringa - return("hehe")
-
Inta - return(100)
ale jak do powyższej funkcji zastosuję w kliencie w Delphi takie odwołanie
showmessage(Inttostr(httprio1 as NewWebService).funkcja1(10,20));
dostaję zwrot równy zero :( nawet jeśli do funkcji dam tylko argument i ona go ma tylko zwrócić
public int funkcja1(int wartosca)
{
return (wartosca);
}</i>
też dostaję zero :( - aha a jak przekazuję jako argumenty Stringa to w ogóle jakiś błąd wywala :(
Dotychcasz robiłęm proste webservicy całkowicie w javie - ale jako że NIE LUBIE javy i wolę delphi próbuję zrobić chociaż klienta w Delphi ( webservice musi być w javie - taki wymóg prowadzącego... ).
Aha - webservice działa na Tomcacie wbudowanym w Netbeansa 5.5.1.
Jeżeli ktoś może mi pomóc to z góry wielkie dzięki!