当前位置:编程学习 > JAVA >>

连接webservice报错java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserExcept

代码如下
package com.smart_home;

import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;


public class SHMIDlet extends MIDlet {

private Display display;
private TextField tfURL, tfUN, tfPW;
private Command cmdLogin, cmdExit;
private Form loginForm;

private String URL;
private String NAMESPACE;
private String SOAP_ACTION;
private String METHOD_NAME;
private SoapSerializationEnvelope envelope;
private SoapObject rpc;
private HttpTransportSE ht;

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}

protected void pauseApp() {
}

protected void startApp() throws MIDletStateChangeException {
display = Display.getDisplay(this);
loginFace();
display.setCurrent(loginForm);

}

private class LoginListener implements CommandListener{
public void commandAction(Command c, Displayable d) {
if (c == cmdLogin) {
Thread thread = new Thread(){
public void run() {
URL = "http://cjf780426.xicp.net:803/Demo/DEMO1/GBSvr.dll/soap/IGBSvr/";
NAMESPACE = "http://tempuri.org/";
METHOD_NAME = "GBlogin";
SOAP_ACTION = "urn:GBSvrIntf-IGBSvr#GBlogin";
String response = null;
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
rpc = new SoapObject(NAMESPACE, METHOD_NAME);
ht = new HttpTransportSE(URL);
rpc.addProperty("UserName", "9990520777");
rpc.addProperty("UserPWD", "123");
envelope.dotNet = true;
envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
try {
ht.debug = true;
ht.call(SOAP_ACTION, envelope);
response = (String) envelope.getResponse();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
System.out.println(response);
}
};
thread.start();
}
}
}

public void loginFace() {
loginForm = new Form("登陆");
tfURL = new TextField("地址:", "", 150, TextField.ANY);
tfUN = new TextField("用户名:", "", 20, TextField.ANY);
tfPW = new TextField("密码:", "", 20, TextField.ANY);
cmdLogin = new Command("登陆", Command.OK, 1);
cmdExit = new Command("退出", Command.EXIT, 1);
loginForm.append(tfURL);
loginForm.append(tfUN);
loginForm.append(tfPW);
loginForm.addCommand(cmdLogin);
loginForm.addCommand(cmdExit);
loginForm.setCommandListener(new LoginListener());
}

}
--------------------编程问答-------------------- 找不到类,基本是缺少包含该类的jar包,往这方面去找吧 --------------------编程问答-------------------- --------------------编程问答-------------------- ksoap2-android-assembly-2.4-jar-with-dependencies.jar,ksoap-midp.zip,kxml2-2.3.0.jar,commons-httpclient.jar。这几个包都有了,不知道什么问题?各位大侠帮帮忙! --------------------编程问答-------------------- ksoap2-android-assembly-2.4-jar-with-dependencies.jar,ksoap-midp.zip,kxml2-2.3.0.jar,commons-httpclient.jar。这几个包都有了,不知道什么问题?各位大侠帮帮忙! --------------------编程问答-------------------- 新建一个libs文件夹 把包添加进来,再引用该文件夹下的包 就可以解决此问题 --------------------编程问答-------------------- 遇到同样问题 求高手 --------------------编程问答-------------------- http://hi.baidu.com/sxczwxzl/blog/item/5b1fafdd11ef24c48d102996.html --------------------编程问答-------------------- 问题解决:
首先,排除INTERNET权限缺失的问题;
其次,将ksoap2-android.jar(jar包名称可能不同)复制到项目源目录libs目录中(如果libs不存在择手动信新建一个文件夹),然后设置项目Build Path,在Libraries页签中添加ksoap2-android.jar。
再者:方法一,在order and export标签页,将ksoap2-android.jar项勾上。
      方法二,在source标签页点击add folder,选中libs或者自己新建的lib文件夹。
(这样做的目的是:使jar包包含在apk文件中,可以发现在bin目录下生成的*.apk文件比之前大了) --------------------编程问答-------------------- 这种情况应该是缺少jar包,或者是jar包的版本不对;打开jar包,看有没有缺少的类。
补充:Java ,  J2ME
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,