Я сделал свои первые шаги с java axis2 webservices. Теперь у меня есть принципиальный вопрос.
В целях тестирования я внедрил класс Car (Auto), который может показывать пройденное расстояние автомобиля и совершать новые поездки.
Я добавил несколько printlns для отладки. Если я спрашиваю новую машину о пройденном расстоянии, я получаю 0 (как и ожидалось). Если я прокатлюсь, набросок сервера покажет новое правильное расстояние. Если я снова спрашиваю о пройденном расстоянии, результат остается равным 0.
Мне интересно, получены ли результаты от одного и того же объекта и почему я не получаю правильное значение.
Серверная часть:
public class Auto {
private int _kmStand;
public int get_kmStand() {
System.out.println("Der aktuelle KM-Stand beträgt "+_kmStand+" km");
return _kmStand;
}
public Auto()
{
_kmStand =0;
}
public void fahren(int strecke)
{
System.out.println("Bei Fahrtantritt "+_kmStand);
_kmStand = _kmStand+strecke;
System.out.println("Bei Fahrtende "+_kmStand);
}
}
Клиентская сторона: пакет орг. apache .ws.axis2;
import java.rmi.RemoteException;
import org.apache.ws.axis2.AutoStub.Fahren;
import org.apache.ws.axis2.AutoStub.Get_kmStand;
public class Simulator {
public static void main(String[] args) throws RemoteException
{
AutoStub stub = new AutoStub();
AutoStub.Get_kmStand p1 = new Get_kmStand();
AutoStub.Get_kmStandResponse r1 = stub.get_kmStand(p1);
System.out.println(r1.get_return());
AutoStub.Fahren p2 = new Fahren();
p2.setStrecke(10);
stub.fahren(p2);
AutoStub.Get_kmStand p3 = new Get_kmStand();
AutoStub.Get_kmStandResponse r2 = stub.get_kmStand(p3);
System.out.println(r2.get_return());
}
}
Серверный журнал: Der aktuelle KM-Stand beträgt 0 км Bei Fahrtantritt 0 Bei Fahrtende 10 Der aktuelle KM-Stand beträgt 0 км
Клиентский журнал 0