Czy można zmusić Jave jeśli tak to jak, do zwracania wyniku w postaci String, złożonego elementu XML, do którego mogę wprost dobrać się poprzez wywołanie metody w Kliencie programu?
W tym przypadku serwerem jest Java. A nie za bardzo widzi mi sie osobna serializacja XML'a. Nadmienię, że przeciążając metodę ToString() w konsoli Javy widzę wyniki jakie chcę. Ściągając je w kliencie C# mam tylko nazwę klasy nie metodę.
Próbuję tak:
Metoda:
@WebMethod
public @WebResult(name = "bikes")
List<Bike> returnCasetteString(){
List<Bike> result = new ArrayList<>();
for (Bike b: bikes) {
if (b.getCassette()) {
result.add(b);
}
}
return result;
}
Ale mu się nie podoba:
Cassette cannot convert to boolean w tym warunku ...
Konstruktor metody:
@XmlElement(name = "cassette")
public Cassette getCassette() {
return cassette;
}
public void setCassette(Cassette cassette) {
this.cassette = cassette;
}
I klasa, gdzie są rozbite wyniki:
public Cassette(Integer upper, Integer lower) {
this.upper = upper;
this.lower = lower;
}
public Integer getUpper() {
return upper;
}
itd.
i wynik:
@Override
public String toString() {
return ""+ upper + "-" + lower + "\n\r";
I chciałem to ściągnąć w kliencie C#:
bikes[] bike = null;
BikeManagerClient bk = new BikeManagerClient();
bike = bk.returnCasetteString();
I wynik zapisać w DataGridView w kolumnie o nazwie: "Cassete".
Wynikiem powinno być np: 11-30 a w tej chwili wyskakuje: BooksClient.BIKE.countertop tylko coś takiego w polu DGV.
Ktoś podpowie jak to zrobić?
Widziałem pare wątków na StackOverlow, ale tam każdy serializuje ten plik XML. A nawet jakbym chciał to zrobić to nie wiem skąd on się bierze w kliencie C#, ani gdzie tworzy się temp file, w przypadku dopisywania danych. A gdzieś musi się tworzyć - gdyż po ponownym uruchomieniu programu nowo zapisane dane są ... ale tylko na tym samym komputerze :) Nie znalazłem jednak w projekcie Visual Studio ani NetBeans plików XML, w których nastąpił zapis ...