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

本文介绍了一种使用Java调用WebService的方法,展示了如何设置目标地址、操作名称、参数及返回类型,并提供了两个调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

*本代码调试获得通过

*/

 

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();
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值