🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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ę
#153711
Author: bigMamma
Date: Sun, 16 Dec 2012 18:20
78 lines
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ę
#153712
Author: czeslaw.szczotka
Date: Sat, 29 Dec 2012 18:01
6 lines
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ę
#153713
Author: bigMamma
Date: Wed, 02 Jan 2013 21:23
194 lines
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