java连接Web Services例子

package untitled1;

/**
 * <p>Title: </p>
 * <p>该例子参考自weblogic,运行时需要weblogic的webserviceclient.jar包: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
import java.net.URL;

import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;


public class Untitled1 {
  public Untitled1() {
  }

  public static void main(String[] args)  {

    try {
      // Setup the global JAXM message factory
      System.setProperty("javax.xml.soap.MessageFactory",
                         "weblogic.webservice.core.soap.MessageFactoryImpl");
      // Setup the global JAX-RPC service factory
      System.setProperty("javax.xml.rpc.ServiceFactory",
                         "weblogic.webservice.core.rpc.ServiceFactoryImpl");

      // create service factory
      ServiceFactory factory = ServiceFactory.newInstance();

      // define qnames  可以从wsdl文件中找到具体值
      String targetNamespace ="http://localhost/services/WSUploadFile";

      QName serviceName =
          new QName(targetNamespace,
                    "WSUploadFileService");//对应wsdl文件中service name值

      QName portName =
          new QName(targetNamespace,
                    "WSUploadFile");//对应wsdl文件中port name或portType name

      QName operationName = new QName("WSUploadFile",
                                      "testWS");//对应wsdl文件中operation name值,即web services具体提供的方法

      URL wsdlLocation =
          new URL("http://localhost/services/WSUploadFile?wsdl");

      // create service
      Service service = factory.createService(wsdlLocation, serviceName);

      // create call
      Call call = service.createCall(portName, operationName);

      // invoke the remote web service
      String result = (String) call.invoke(new Object[]{"testWS","asdfg"});//暴露的方法需要两个或多个参数
//      String result = (String) call.invoke(new Object[]{});//暴露的方法不需要传递参数

      System.out.println(result);
    }catch (Exception e) {
      e.printStackTrace();
    }
  }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值