J2ME 调用 WEBServices
求大哥大姐帮帮忙!!!!
诚信为本
回答的(沾边的我想办法给你加200分)
回答的(沾边的我想办法给你加200分)
回答的(沾边的我想办法给你加200分)
回答的(沾边的我想办法给你加200分)
jar 包:
JRE[JDK1.6]
J2ME library
axis.jar
axis-ant.jar
axis-schema.jar
commons-httpclient-3.0-rc.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j.jar
xerceslmpl.jar
xml-apis.jar
xmlparserAPIs.jar
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class Test1 extends MIDlet {
public Test1() {
// TODO 自动生成构造函数存根
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成方法存根
}
protected void pauseApp() {
// TODO 自动生成方法存根
}
protected void startApp() throws MIDletStateChangeException {
// TODO 自动生成方法存根
try {
System.out.println("1");
String endpoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
System.out.println("2");
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
System.out.println("3");
//设置执行的方法、参数、返回值
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("qqCheckOnline");
System.out.println("3");
param = new org.apache.axis.description.ParameterDesc(
new javax.xml.namespace.QName("http://WebXml.com.cn/", "qqCode"),
org.apache.axis.description.ParameterDesc.IN,
new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema",
"string"), java.lang.String.class, false, false);
System.out.println("4");
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(new javax.xml.namespace.QName( "http://WebXml.com.cn/", "qqCheckOnlineResult"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
System.out.println("5");
call.setOperation(oper);
/**
call.setOperationName("qqCheckOnline");
call.addParameter(new javax.xml.namespace.QName("http://WebXml.com.cn/", "qqCode")
, org.apache.axis.encoding.XMLType.XSD_STRING
, String.class, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
call.setReturnClass(String.class);
call.setReturnQName(new javax.xml.namespace.QName("http://WebXml.com.cn/", "qqCheckOnlineResult"));
**/
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://WebXml.com.cn/qqCheckOnline");
call.setOperationName(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCheckOnline"));
System.out.println("6");
String k = (String) call.invoke(new Object[] { "524503467" });
System.out.println("7");
System.out.println("result is " + k.toString() + ".");
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
}
可是在运行的时候说:
Running with storage root C:\Documents and Settings\Administrator\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: Chinese_People's Republic of China.936
Running in the identified_third_party security domain
1
2
java.lang.NoClassDefFoundError: org/apache/axis/client/Service
at org.syspace.wxcy.me.Test1.startApp(+21)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)
Execution completed.
3403420 bytecodes executed
28 thread switches
1675 classes in the system (including system classes)
17811 dynamic objects allocated (538080 bytes)
3 garbage collections (460532 bytes collected)
运行到
Service service = new Service();就出错
帮帮忙吧~~~谢了
在main函数里运行没问题
在j2me里运行就有问题了
郁闷