importorg.apache.axiom.om.OMAbstractFactory;
importorg.apache.axiom.om.OMElement;
importorg.apache.axiom" />

嫒美直播免费版app下载-嫒美直播永久免费版下载-嫒美直播最新下载安装

當(dāng)前位置:首頁(yè) > 資格考試 > 正文

?。?!緊急:關(guān)于axis2訪問webservice服務(wù)的問題

axis2調(diào)用webservice問題

importjavax.xml.namespace.QName;
importorg.apache.axiom.om.OMAbstractFactory;
importorg.apache.axiom.om.OMElement;
importorg.apache.axiom.om.OMFactory;
importorg.apache.axiom.om.OMNamespace;
importorg.apache.axis2.AxisFault;
importorg.apache.axis2.addressing.EndpointReference;
importorg.apache.axis2.client.Options;
importorg.apache.axis2.client.ServiceClient;
importorg.apache.axis2.rpc.client.RPCServiceClient;
publicclasstest{
publicstaticvoidmain(String[]args)throwsException{
//使用RPC方式調(diào)用WebService
RPCServiceClientser=newRPCServiceClient();
Optionsoptions=ser.getOptions();
//指定調(diào)用WebService的URL
EndpointReferencetargetEPR=newEndpointReference(
"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL");
options.setTo(targetEPR);
options.setAction("http://WebXml.com.cn/getMobileCodeInfo");
//指定getMobileCodeInfo方法的參數(shù)值
Object[]opAddEntryArgs=newObject[]{"15818843224","15848888"};
//指定getMobileCodeInfo方法返回值的數(shù)據(jù)類型的Class對(duì)象
Class[]classes=newClass[]{String.class,String.class};
//指定要調(diào)用的getMobileCodeInfo方法及WSDL文件的命名空間
QNameopAddEntry=newQName("http://WebXml.com.cn/","getMobileCodeInfo");
//調(diào)用getMobileCodeInfo方法并輸出該方法的返回值
Object[]str=ser.invokeBlocking(opAddEntry,opAddEntryArgs,classes);
// System.out.println(ser.invokeBlocking(opAddEntry,opAddEntryArgs));


try{
ServiceClientsc=newServiceClient();
Optionsopts=newOptions();
//確定目標(biāo)服務(wù)地址
opts.setTo(newEndpointReference(
"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL"));
//確定調(diào)用方法
opts.setAction("http://WebXml.com.cn/getMobileCodeInfo");
sc.setOptions(opts);
//發(fā)送請(qǐng)求并并得到返回結(jié)果,注意參數(shù)生成方法的分析
OMElementres=sc.sendReceive(createPayLoad());
//值得注意的是,返回結(jié)果就是一段由OMElement對(duì)象封裝的xml字符串。
//我們可以對(duì)之靈活應(yīng)用,下面我取第一個(gè)元素值,并打印之。因?yàn)檎{(diào)用的方法返回一個(gè)結(jié)果
res.getFirstElement().getText();
System.out.println(res.getFirstElement().getText());
}catch(AxisFaulte){
e.printStackTrace();
}


}
publicstaticOMElementcreatePayLoad(){
OMFactoryfac=OMAbstractFactory.getOMFactory();
//指定命名空間
OMNamespaceomNs=fac.createOMNamespace("http://WebXml.com.cn/","nsl");
//指定方法
OMElementmethod=fac.createOMElement("getMobileCodeInfo",omNs);
//指定方法的參數(shù)
OMElementvalue=fac.createOMElement("mobileCode",omNs);
value.setText("15818843224");
method.addChild(value);
OMElementvalue1=fac.createOMElement("userID",omNs);
value1.setText("");
method.addChild(value1);
//返回方法(實(shí)際上就是OMElement封裝的xml字符串)
returnmethod;
}
}

我不知道怎么使用rpc這種方法能夠拼湊出如下的內(nèi)容:

<?xmlversion="1.0"encoding="utf-8"?>
http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

http://WebXml.com.cn/">
string
string


你的代碼只能夠產(chǎn)生如下的內(nèi)容:

不知道是不是.net的webservice是不是一定要

string
string

形式的,但是使用rpc方式,我是不知道怎么辦到的,所以我只能采用document方式調(diào)用,生成如下的內(nèi)容:

現(xiàn)在總算是可以了:

15818843224:廣東 廣州 廣東移動(dòng)全球通卡

如何解決java axis 調(diào)用webservice服務(wù)器操作異常

安裝Eclipse-jee,下載Axis2的最新版本Axis2 1.4.1 Release,其內(nèi)部結(jié)構(gòu)為 開發(fā)前配置:在Eclipse的菜單欄中,Window --> Preferences --> Web Service --> Axis2 Perferences,在Axis2 runtime location中選擇Axis2解壓縮包的位置,設(shè)置好后,點(diǎn)"OK"即行。 新建一個(gè)Java Project,命名為"WS_01",在"WS_01"項(xiàng)目上new --> other,找到"Web Services"下面的"Web Service"; 在出現(xiàn)的Web Services對(duì)象框,在Servi

java 中怎樣用axis2調(diào)用webservice服務(wù)

ServiceClientsender=newServiceClient();
Optionsoption=newOptions();
option.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
option.setAction("http://WebXml.com.cn/getWeatherbyCityName");
EndpointReferenceepfs=newEndpointReference(address);
option.setTransportInProtocol(Constants.TRANSPORT_HTTP);
option.setTo(epfs);
sender.setOptions(option);

OMFactoryfac=OMAbstractFactory.getOMFactory();
OMNamespaceomNs=fac.createOMNamespace("http://WebXml.com.cn/","");
OMElementdata=fac.createOMElement("getWeatherbyCityName",omNs);
OMElementinner=fac.createOMElement("theCityName",omNs);
inner.setText("長(zhǎng)沙");
data.addChild(inner);
OMElementresult=sender.sendReceive(data);
System.out.println(result);

一個(gè)基于axis2開發(fā)的webService服務(wù)的問題

你用的沒錯(cuò) axis2有很多中應(yīng)用的方式,他可以自己?jiǎn)?dòng)一個(gè)服務(wù)獨(dú)立運(yùn)行,也可以作為一個(gè)應(yīng)用程序部署到應(yīng)用服務(wù)器中。 還可以在自己的項(xiàng)目中內(nèi)建axis2的功能,就是在你的項(xiàng)目里面加上axis2的相關(guān)的包,在Web.xml配置axis2相關(guān)的Servlet,這樣axis2就可以和原有的項(xiàng)目融為一體了。所以看不到axis.war的東西。 實(shí)際項(xiàng)目中這幾種方式都有用到。 另外開發(fā)WebService除了AXIS2還有別的框架。

在eclipse中用axis2生成webservice時(shí)遇到的問題

我也遇到這樣的問題,可以試一下下面的方法,我是這么解決的: 1、File->Switch WorkSpace->(new workspace) 2、Window->Preferences->Web Services->Axis2 Preferences->Axis2 runtime location 3、新建一個(gè)項(xiàng)目,勾選上Axis2 4、將新的Workspace路徑下的\.metadata\.plugins\org.apache.axis2.facet\下復(fù)制到之前的Workspace,再將eclipse切換到原來的Workspace就可以了 5、刪掉新建的Workspace
展開全文閱讀