Article View: pl.comp.lang.java
Article #153713Re: Java WSDL - jak mogę zamienć obiekt na XML i zalogować się
From: 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 :)
Technical Details
Message-ID:
<2c848edb-e94d-48e8-a226-271f1d2e37ee@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!feeder1.cambriumusenet.nl!82.197.223.108.MISMATCH!feeder2.cambriumusenet.nl!feed.tweaknews.nl!209.85.216.87.MISMATCH!ee4no12108536qab.0!news-out.google.com!k2ni4226qap.0!nntp.google.com!ee4no12227320qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<28ad5231-d9cf-4169-b3ec-00fc91b6c8fd@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.224.184.11 with SMTP id ci11mr26188394qab.1.1357161799624; Wed, 02 Jan 2013 13:23:19 -0800 (PST) Received: by 10.49.116.34 with SMTP id jt2mr7475266qeb.38.1357161799598; Wed, 02 Jan 2013 13:23:19 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!feeder1.cambriumusenet.nl!82.197.223.108.MISMATCH!feeder2.cambriumusenet.nl!feed.tweaknews.nl!209.85.216.87.MISMATCH!ee4no12108536qab.0!news-out.google.com!k2ni4226qap.0!nntp.google.com!ee4no12227320qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.java Date: Wed, 2 Jan 2013 13:23:19 -0800 (PST) In-Reply-To: <28ad5231-d9cf-4169-b3ec-00fc91b6c8fd@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=156.17.207.169; posting-account=S68uugoAAADAKFnRPdRLP91xa88xg3LE NNTP-Posting-Host: 156.17.207.169 References: <28ad5231-d9cf-4169-b3ec-00fc91b6c8fd@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <2c848edb-e94d-48e8-a226-271f1d2e37ee@googlegroups.com> Subject: Re: Java WSDL - jak mogę zamienć obiekt na XML i zalogować się From: bigMamma <marcinchuc@gmail.com> Injection-Date: Wed, 02 Jan 2013 21:23:19 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit