Java Webservices + Apache Axis 1.4
Geigerzeiger 22.06.2007 - 01:58 864 6
Geigerzeiger
Addicted
|
Hallo! Ich muss einen JAVA Webclient bauen (Noteninformationssystem), der auf einen ASP.NET Webservice zugreifen kann. Ich habe Axis 1.4 installiert, classpaths gesetz und kann mit folgendem Codestück auf das Service zugreifen: try {
Service srv = new ServiceLocator();
ServiceSoap s = srv.getServiceSoap();
Student st = (s.login("user", "password"));
System.out.println(st.getNachname());
} catch(Exception ex) {
... }
Dieser Code gibt mir ein gültiges Student Objekt zurück, das mir weitere Details liefert. (Vor-, Nachname, MatrNr,...) Dieses Student Objekt brauche ich, um auf weitere Methoden des Webservice zuzugreifen zb. GetMyMarks(student); Das haut prima hin, nur das Service legt intern eine Session an, ob sich der User erfolgreich authentifiziert hat oder nicht. Demzufolge prüft er die Session an bei jedem weiteren Methodenaufruf. Das Problem ist nun, wo sollen die Sessions gesetz werden? In einem .NET CLient muss man ihm einen CookieContainer anlegen, sodasss der Client die Session speichern kann, aber wie mache ich das in Java bzw. mit dem Axis Framework? ICh habe daweil nix gscheits gefunden, hoffe ihr könnt mir helfen bzw, hat jemand sowas schon gemacht? tia, Schöne Grüße
|
sensei
die Küstenwache?
|
wenn ich das jetzt nicht falsch verstanden habe:
es gibt 3 möglichkeiten zu speichern: page, session und application
session legt die objekte in der HttpSession ab. also: HttpSession session = request.getSession(); session.setAttribute("student", st); ... Student st= (Student) session.getAttribute("student");
|
Geigerzeiger
Addicted
|
Thx, aber das weiß ich schon.
Es geht darum, wohin das Webservice die angelegte Session speichert. Also das WS legt intern ne eigene Session an, um sich Logindaten zu merken. Diese müssen aber irgendwie am Client gespeichert werden. Wie geht das?
|
DKCH
...
|
wozu brauchst die?
|
sensei
die Küstenwache?
|
am einfachsten mit cookies? Cookie studentCookie = new Cookie("Student", "123456"); studentCookie.setMaxAge(60*60*24*365); // 1 jahr halt response.addCookie(studentCookie); lesen dann mit: Cookie[] cookies = request.getCookies(); hoff ich lieg nicht wieder daneben edit: ein objekt kannst halt in cookies nicht direkt ablegen, is aber ja auch nicht der sinn des ganzen
|
that
ModeratorHoffnungsloser Optimist
|
service.setMaintainSession(true) ?
@alle anderen: Es geht hier um einen SOAP-Client, keinen HTTP-Server.
|
Geigerzeiger
Addicted
|
Fesch! werd mir das mal ansehen. thx Es geht um einen SOAP Client, korrekt.
|