Avatar billede pongman Nybegynder
15. marts 2007 - 21:58 Der er 5 kommentarer

Trådning, vente på en tråd er færdig ?

Er i gang med at lave et simpelt J2me program der sender en tekst-streng til en webservice som returnerer endnu en tekststreng. Den der bliver returneret skal jeg så have vist på GUI'en.
Jeg kalder TestSessionController fra GUI'en når der bliver trykket på en knap, denne starter en tråd "t" af klassen "Test". Denne tråd (efter hvad jeg ved skal al netforbindelse i J2ME foregå i en tråd) skal den forbinde til webservicen og sende en tekst-streng "This is a test" og derefter få en streng tilbage: echoResult.
Dette sker også og der er hul igennem til webservicen. Problemet er at den udfører TestSessionController's
"return test.getEcho();"
før den tråd er kørt færdig og har sat værdien og den returnerer derfor bare "", og ikke den værdi som der bliver returneret fra webservicen.

Main-GUI.
                if(text == null || text.length() == 0)
                {
                    txtStatus.setText("Fejl, check venligst at du har indtastet en tekst");
                }
               
                else
                {
                    TestSessionController testSessionController = new TestSessionController();
                            try
                            {
                                txtTestReturn.setString(testSessionController.TestConnection("this is a test"));
                            } catch (InterruptedException ex) {
                                ex.printStackTrace();
                            }     
                }

TestSessionController.java
    public String TestConnection(String echo) throws InterruptedException
    { 
        System.out.println("alive1");
        this.echo = echo;
        tester();
        return test.getEcho();
    }
   
    public void tester() throws InterruptedException
    {
        test.setEcho(echo);
        Thread t = new Thread(test);
        t.start();
    }

Test.java
    public String getEcho()
    {
        return echoResult;
    }
   
    public void setEcho(String echo)
    {
        this.echo = echo;
    }

    public void run()
    {
        String serviceURL = "http://localhost:8084/WebServiceExample/WebLocalhost";
       
        WebLocalhost_Stub service = new WebLocalhost_Stub();

        service._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, serviceURL);
        service._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, new Boolean(true));
        try
        {     
              echoResult = service.tester(echo);
        }
        catch (Exception e) { 
            echoResult = "Fejl, kan ikke oprette forbindelse";
        }
    }
Avatar billede pongman Nybegynder
15. marts 2007 - 22:24 #1
Glemte lige at tilføje at det jeg prøver er at få tråden til at køre færdig så man får returneret den rigtige værdi.
Avatar billede erikjacobsen Ekspert
15. marts 2007 - 22:50 #2
Avatar billede pongman Nybegynder
16. marts 2007 - 00:14 #3
Jeg takker !
Smid et svar så kan du få nogle point
Avatar billede erikjacobsen Ekspert
16. marts 2007 - 09:22 #4
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede pongman Nybegynder
16. marts 2007 - 11:05 #5
Okay, tak igen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester