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";
}
}