Thread View: pl.comp.lang.java
3 messages
3 total messages
Started by bigMamma
Sun, 16 Dec 2012 18:20
Java WSDL - jak mogę zamienć obiekt na XML i zalogować się
Author: bigMamma
Date: Sun, 16 Dec 2012 18:20
Date: Sun, 16 Dec 2012 18:20
78 lines
4270 bytes
4270 bytes
Witam,
programowaniem zajmuję się amatorsko, stąd pewnie ten problem...
mianowicie, w kontekście systemu eWUŚ z NFZ...
chcę sobie zrobić prostą apkę, która omija stronę WWW.
NFZ udostępnia informację, że interface dostępny jest pod adresem:
https://ewus.nfz.gov.pl/ws-broker-server-ewus/services/Auth?wsdl
Netbeans generuje mi automatycznie taki kod:
private void login_1() {
nfz.pkg2.auth.Auth_Service service = new nfz.pkg2.auth.Auth_Service();
QName portQName = new QName("http://xml.kamsoft.pl/ws/auth", "Auth");
String req = "<login xmlns=\"http://xml.kamsoft.pl/ws/auth\"><request>ENTER VALUE</request><response>ENTER VALUE</response><session>ENTER VALUE</session><token>ENTER VALUE</token></login>";
try {
// Call Web Service Operation
Dispatch<Source> sourceDispatch = null;
sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
} catch (Exception ex) {
// TODO handle custom exceptions here
}
}
natomiast, kiedy zdeklaruję AuthService tak:
Auth_Service auth = new Auth_Service();
LoginParams lp = new LoginParams();
//login
LoginParam lp1 = new LoginParam();
lp1.setName("login");
ParamValue paramV = new ParamValue();
paramV.setStringValue("NRID");
lp1.setValue(paramV);
lp.getItem().add(lp1);
// id_ow
lp1 = new LoginParam();
lp1.setName("domain");
paramV = new ParamValue();
paramV.setStringValue("01");
lp1.setValue(paramV);
lp.getItem().add(lp1);
//
lp1 = new LoginParam();
lp1.setName("type");
paramV = new ParamValue();
paramV.setStringValue("LEK");
lp1.setValue(paramV);
lp.getItem().add(lp1);
LoginRequest lr = new LoginRequest();
lr.setCredentials(lp);
lr.setPassword("moje haslo");
Holder<String> odp = new Holder<>();
Holder<Session> sesja = new Holder<>();
Holder<AuthToken> token = new Holder<>();
auth.getAuth().login(lr, odp, sesja, token);
to mam następujący problem:
wywołanie funkcji login_1 zaczyna się łączyć - tyko nie wiem, jak przekazać login, hasło, typ id_uw, ustawić pola odp, sesja, token ... z drugiej strony wywołanie auth.getAuth().login(lr, odp, sesja, token)
wywala mi błąd:
javax.xml.ws.soap.SOAPFaultException: org.apache.axis2.databinding.ADBException: Unexpected subelement {http://xml.kamsoft.pl/ws/auth}login
innymi słowy,
jak korzystając z tego interface mogę przesłać dane logowania i odebrać sesję, token odpowiedź serwera.
(albo inaczej: jak obiekt LoginRequest lr plus odp plus sesja plus token przekonwertować do Stringa XML i wysłać jako req w funkcji login_1... chyba)
Bardzo proszę o pomoc!
Re: Java WSDL - jak mogę zamienć obiekt na XML i zalogować się
Author: czeslaw.szczotka
Date: Sat, 29 Dec 2012 18:01
Date: Sat, 29 Dec 2012 18:01
6 lines
1926 bytes
1926 bytes
Witam, Może najpierw zamist używać wygenerowanego kodu spróbuj użyć SOAPUI http://www.soapui.org/ który na podstawie wsdl wygeneruje ci soap -owe requesty w które będziesz mógł wstawić parametry. Potem wysleś te requesty do serwisu i zobaczysz co ci zwróci. Bo chodzi mi o to aby na początek ustalić jakie wartości/formaty parametrów są dozwolone jak to będziesz wiedział to można wpróbować uźyć tego kodu wygenerowanego klient -a w netbean -sie. Pozdrawiam,
Re: Java WSDL - jak mogę zamienć obiekt na XML i zalogować się
Author: bigMamma
Date: Wed, 02 Jan 2013 21:23
Date: Wed, 02 Jan 2013 21:23
194 lines
6484 bytes
6484 bytes
W dniu niedziela, 16 grudnia 2012 19:20:57 UTC+1 użytkownik bigMamma napisał:
> Witam,
>
> programowaniem zajmuję się amatorsko, stąd pewnie ten problem...
>
> mianowicie, w kontekście systemu eWUŚ z NFZ...
>
> chcę sobie zrobić prostą apkę, która omija stronę WWW.
>
> NFZ udostępnia informację, że interface dostępny jest pod adresem:
>
> https://ewus.nfz.gov.pl/ws-broker-server-ewus/services/Auth?wsdl
>
>
>
> Netbeans generuje mi automatycznie taki kod:
>
>
>
> private void login_1() {
>
> nfz.pkg2.auth.Auth_Service service = new nfz.pkg2.auth.Auth_Service();
>
> QName portQName = new QName("http://xml.kamsoft.pl/ws/auth", "Auth");
>
> String req = "<login xmlns=\"http://xml.kamsoft.pl/ws/auth\"><request>ENTER VALUE</request><response>ENTER VALUE</response><session>ENTER VALUE</session><token>ENTER VALUE</token></login>";
>
> try {
>
> // Call Web Service Operation
>
> Dispatch<Source> sourceDispatch = null;
>
> sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
>
> Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
>
> } catch (Exception ex) {
>
> // TODO handle custom exceptions here
>
> }
>
> }
>
>
>
>
>
>
>
> natomiast, kiedy zdeklaruję AuthService tak:
>
> Auth_Service auth = new Auth_Service();
>
>
>
> LoginParams lp = new LoginParams();
>
> //login
>
> LoginParam lp1 = new LoginParam();
>
> lp1.setName("login");
>
> ParamValue paramV = new ParamValue();
>
> paramV.setStringValue("NRID");
>
> lp1.setValue(paramV);
>
> lp.getItem().add(lp1);
>
> // id_ow
>
> lp1 = new LoginParam();
>
> lp1.setName("domain");
>
> paramV = new ParamValue();
>
> paramV.setStringValue("01");
>
> lp1.setValue(paramV);
>
> lp.getItem().add(lp1);
>
> //
>
> lp1 = new LoginParam();
>
> lp1.setName("type");
>
> paramV = new ParamValue();
>
> paramV.setStringValue("LEK");
>
> lp1.setValue(paramV);
>
> lp.getItem().add(lp1);
>
>
>
> LoginRequest lr = new LoginRequest();
>
> lr.setCredentials(lp);
>
> lr.setPassword("moje haslo");
>
>
>
> Holder<String> odp = new Holder<>();
>
> Holder<Session> sesja = new Holder<>();
>
> Holder<AuthToken> token = new Holder<>();
>
>
>
> auth.getAuth().login(lr, odp, sesja, token);
>
>
>
>
>
>
>
>
>
> to mam następujący problem:
>
>
>
> wywołanie funkcji login_1 zaczyna się łączyć - tyko nie wiem, jak przekazać login, hasło, typ id_uw, ustawić pola odp, sesja, token ... z drugiej strony wywołanie auth.getAuth().login(lr, odp, sesja, token)
>
>
>
> wywala mi błąd:
>
>
>
> javax.xml.ws.soap.SOAPFaultException: org.apache.axis2.databinding.ADBException: Unexpected subelement {http://xml.kamsoft.pl/ws/auth}login
>
>
>
>
>
> innymi słowy,
>
> jak korzystając z tego interface mogę przesłać dane logowania i odebrać sesję, token odpowiedź serwera.
>
> (albo inaczej: jak obiekt LoginRequest lr plus odp plus sesja plus token przekonwertować do Stringa XML i wysłać jako req w funkcji login_1... chyba)
>
>
>
> Bardzo proszę o pomoc!
Dobroczyńco!
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:log="http://xml.kamsoft.pl/ws/kaas/login_types">
<soapenv:Header/>
<soapenv:Body>
<log:login>
<log:credentials>
<!--1 or more repetitions:-->
<log:item>
<log:name>login</log:name>
<log:value>
<!--You have a CHOICE of the next 2 items at this level-->
<log:stringValue>LOGIN</log:stringValue>
</log:value>
</log:item>
<!--1 or more repetitions:-->
<log:item>
<log:name>type</log:name>
<log:value>
<!--You have a CHOICE of the next 2 items at this level-->
<log:stringValue>LEK</log:stringValue>
</log:value>
</log:item>
<!--1 or more repetitions:-->
<log:item>
<log:name>domain</log:name>
<log:value>
<!--You have a CHOICE of the next 2 items at this level-->
<log:stringValue>IZBA</log:stringValue>
</log:value>
</log:item>
</log:credentials>
<log:password>HASŁO</log:password>
</log:login>
</soapenv:Body>
</soapenv:Envelope>
Działa w SOAPIU, będzie działało i w JAva, i hope :)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads