您的位置:首页 > 运维架构 > 网站架构

Java调用架构于C#下的WebService实例二

2009-10-10 17:29 1011 查看
/*

*本代码调试获得通过

*/

package com.viewlinecn.common.ws.util;

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class TestNetWSUtils {

/**
* 调用步骤:
* 1. 在IE中输入URL地址,如:http://218.75.119.106:8100/BNBL.asmx?op=Passport_GetLastLoginGame
* 2. 参考相关服务端信息:
* POST /BNBL.asmx HTTP/1.1
Host: 218.75.119.106
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Passport_GetLastLoginGame"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Passport_GetLastLoginGame xmlns="http://tempuri.org/">
<paramPN>string</paramPN>
<paramTerraceID>string</paramTerraceID>
</Passport_GetLastLoginGame>
</soap:Body>
</soap:Envelope>

3. 重点关注: SOAPAction 和 参数名称和类型
*
*/

public void invoke1(){
try {
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL("http://218.75.119.106:8555/BNBL.asmx"));
call.setOperationName(new QName("http://tempuri.org/","Passport_GetGameIDByBL"));
call.setUseSOAPAction(false);
call.setSOAPActionURI("http://tempuri.org/Passport_GetGameIDByBL");
call.setReturnType(XMLType.XSD_ANY);
String result = (String)call.invoke(new Object[]{});
System.out.println(result);

} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void invoke2(){
try {
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL("http://218.75.119.106:8555/BNBL.asmx"));
call.setOperationName(new QName("http://tempuri.org/","Passport_GetLastLoginGame"));
call.addParameter(new QName("http://tempuri.org/","paramPN"),XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/","paramTerraceID"),XMLType.XSD_STRING, ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/Passport_GetLastLoginGame");
call.setReturnType(XMLType.XSD_ANY);

Object result = call.invoke(new Object[]{"11111", "1111"});
System.out.println(result);

} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* @param args
*/
public static void main(String[] args) {
//new TestWSUtils().invoke1();
new TestNetWSUtils().invoke2();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: