Avatar billede boomshanka Nybegynder
08. januar 2005 - 11:33 Der er 10 kommentarer og
1 løsning

J2ME, ksoap: Package org.ksoap does not exist

Jeg har forsøgt at bruge ksoap sammen med J2ME men får ovenstående fejlbesked når jeg kompiler et simpelt eksempel. Hvor er det meningen man skal lægge org-mappen henne?
Avatar billede simonvalter Praktikant
08. januar 2005 - 12:03 #1
ja der kan være en del problemer med det.. da kilden følger med så smider du den bare i dit projekt
f.eks du har src/dinpakke/dinkode.java
så skal det ligge som src/org/ksoap2...

men jeg kan ikke forstå den siger org.ksoap does not exist når det er org.ksoap2 du skal bruge.
Avatar billede boomshanka Nybegynder
08. januar 2005 - 12:31 #2
Ahem...det var min fejl. Jeg mente selvfølgelig ksoap2 :-)

Nu har jeg smidt org-mappen fra ksoap2-src\src ned i j2me\apps\HelloSuite\src mappen (HelloSuite er et eksempel fra en wireless tutorial fra java.sun.com) og prøver lige med et simpelt eksempel. Jeg vender lige tilbage når jeg får et resultat
Avatar billede boomshanka Nybegynder
08. januar 2005 - 13:14 #3
Okay nu er jeg lidt forvirret...

Når jeg kompilere projektet får jeg 100 build errors, som følge af den ikke kan finde 2 packages; org.xmlpull.v1 og org.kxml2.kdom - fint nok, dem har jeg hentet

Men xmlpull_1_1_3_4a_src indeholder 7 org\xmlpull\v1 mapper, så hvilken en skal man bruge?
Avatar billede simonvalter Praktikant
08. januar 2005 - 13:20 #4
du skal bruge
org\xmlpull\v1\XmlPullParser.java ; XmlPullParserException.java ; XmlSerializer.java

org\kxml2\kdom\Document.java ; Element.java ; Node.java

du skal muligvis også bruge

org\kobjects\isodate\IsoDate.java

org\kobjects\base64\Base64.java

men det kan godt være det bare var mig der skulle bruge det i mit projekt.
Avatar billede boomshanka Nybegynder
08. januar 2005 - 13:59 #5
Okay, nu er jeg nede på 2 build errors med nedenstående StockQuoteDemo-eksempel:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;
import org.ksoap2.*;
import org.ksoap2.serialization.*;

public class StockQuoteDemo extends MIDlet implements CommandListener {
    Form mainForm = new Form("StockQuotes");
    TextField symbolField = new TextField("Symbol", "SUNW", 5, TextField.ANY);
    StringItem resultItem = new StringItem("", "");
    Command getCommand = new Command("Get", Command.SCREEN, 1);
   
    public StockQuoteDemo() {
        mainForm.append(symbolField);
        mainForm.append(resultItem);
        mainForm.addCommand(getCommand);
        mainForm.setCommandListener(this);
    }
   
    public void startApp() {
        Display.getDisplay(this).setCurrent(mainForm);
    }
    public void pauseApp() {}
   
    public void destroyApp(boolean unconditional) {}
   
    public void commandAction(Command c, Displayable d) {
        try {
            // Build request string
            String symbol = symbolField.getString();
            resultItem.setLabel(symbol);
           
            // Create a SoapObject by specifying the URN and the method name of the SOAP RPC Web Service.
            SoapObject rpc = new SoapObject("urn:xmethods-delayed-quotes", "getQuote");
           
            // The addProperty method allows you to specify parameters to for the method used.
            rpc.addProperty("symbol", symbol);
           
            // The HttpTransport class can be used to make the actual call.
            // Its constructor accepts the Web Service endpoint as well as
            // the method to be called.
            resultItem.setText("" + new HttpTransport("http://services.xmethods.net/soap","urn:xmethods-delayed-quotes#getQuote").call(rpc));
        }
        catch(Exception e) {
            e.printStackTrace();
            resultItem.setLabel("Error:");
            resultItem.setText(e.toString());
        }
    }
   
    public static void main(String [] argv) {
        new StockQuoteDemo().startApp();
    }
}

men selvom jeg har lagt HttpTransport under org\ksoap2 så siger kompileren stadig den ikke kan finde HttpTransport - det var den ene fejl

Den anden er fordi den ikke kan finde class Double i org\xmlpull\v1\xmlrpc\XmlRpcParser.java:35
Avatar billede simonvalter Praktikant
08. januar 2005 - 14:32 #6
du skal have org\ksoap2\transport\HttpTransport.java

og class Double ved jeg intet om.. jeg har nok en ældre version liggende.
Avatar billede simonvalter Praktikant
08. januar 2005 - 14:37 #7
eller så har jeg modificeret koden til det jeg skulle bruge den til og fjernet alt andet .. kan ikke lige huske det
Avatar billede boomshanka Nybegynder
08. januar 2005 - 14:53 #8
argh...nu kan jeg se hvorfor den brokker sig mht. HttpTransport - der findes ganske enkelt ingen constructor med 2 string-parametre i HttpTransport.java. Dvs. StockQuoteDemo-eksemplet uden tvivl er lavet med henblik på ksoap og ikke ksoap2 :-/

Men når man nu har oprettet mappestrukturen under sit projekt, er der så ikke en måde hvormed man kan pakke de import-filer man skal bruge i en mypackage.jar og så lægge dem et sted, så alle projekter under j2me\apps kan bruge den?
Avatar billede simonvalter Praktikant
08. januar 2005 - 18:13 #9
prøv at gøre på samme måde som med en almindelig j2se applikation og kom den i classpath.
hvordan det vil virke på telefonen ved jeg ikke.. jeg har altid haft 1 .jar til 1 .jad fil.
Avatar billede boomshanka Nybegynder
08. januar 2005 - 18:24 #10
okay jeg prøver - du skal ihvertfald have tak! Smid et svar så får du dine point :-)
Avatar billede simonvalter Praktikant
08. januar 2005 - 18:52 #11
ok det var så lidt.
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