c++ builder 2010开发webservice 怎么发布到服务器上

c++ builder 2010开发webservice 怎么发布到服务器上,第1张

在服务端写一个专门针对文件的方法,客户端参数类型可以是Byte/DataHandler等类型,在服务端进行解析参数写入文件即可。最重要的是要设置WebService为可传递附件,默认的WebService仅仅支持一般数据类型的传递。

您好,我来为您解答:
只需要把bin 和 Service1asmx和 Webconfig 这三个,把他们放在一个你命名的文件。放在远程电脑C:\Inetpub\>生成webservice客户端的解决办法 JDK自带wsimport命令 wsimport命令在JDK16及以上版本中自带该工具,所以如果想使用本方式须安装JDK16及其以上的版本。 打开cmd命令窗口,快捷方式为window+r组合键。打开cmd窗口后,通过wsimport命令生成webs。

Java调用WebService可以直接使用Apache提供的axisjar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。
1、编写代码方式:

package comyuduntest;
import javarmiRemoteException;
import orgapacheaxisclientCall;
import orgapacheaxisclientService;
import orgapacheaxismessagePrefixedQName;
import orgapacheaxismessageSOAPHeaderElement;
import comcezannegoldenuserException;
import comcezannegoldenuserUserManagerServiceProxy;
import javaxxmlnamespaceQName;
import javanetMalformedURLException;
import javaxxmlrpcServiceException;
import javaxxmlsoapName;
import javaxxmlsoapSOAPException;
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
  {
     //标识Web Service的具体路径
   String endpoint = "WebService服务地址";
     // 创建 Service实例
    Service service = new Service();   
     // 通过Service实例创建Call的实例
    Call call = (Call) servicecreateCall();
    //将Web Service的服务路径加入到call实例之中
    callsetTargetEndpointAddress( new javanetURL(endpoint) );//为Call设置服务的位置
   // 由于需要认证,故需要设置调用的SOAP头信息。   
    Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") ); 
          orgapacheaxismessageSOAPHeaderElement header = new SOAPHeaderElement(headerName); 
          headeraddTextNode( "blablabla" ); 
          calladdHeader(header);
          
//    SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader");   
//    soapHeaderElementsetNamespaceURI("发布的wsdl里的targetNamespace里的url");   
//    try  
//    {   
//        soapHeaderElementaddChildElement("string_itemName")setValue("blablabla");   
//    }   
//    catch (SOAPException e)   
//    {   
//        eprintStackTrace();   
//    }   
//    calladdHeader(soapHeaderElement);  
    //调用Web Service的方法
          orgapacheaxisdescriptionOperationDesc oper;
          orgapacheaxisdescriptionParameterDesc param;
          oper = new orgapacheaxisdescriptionOperationDesc();
          opersetName("opName");
          param = new orgapacheaxisdescriptionParameterDesc(new javaxxmlnamespaceQName("", "arg0"), orgapacheaxisdescriptionParameterDescIN, new javaxxmlnamespaceQName(", "string"), javalangStringclass, false, false);
          paramsetOmittable(true);
          operaddParameter(param);
          param = new orgapacheaxisdescriptionParameterDesc(new javaxxmlnamespaceQName("", "arg1"), orgapacheaxisdescriptionParameterDescIN, new javaxxmlnamespaceQName(", "string"), javalangStringclass, false, false);
          paramsetOmittable(true);
          operaddParameter(param);
          param = new orgapacheaxisdescriptionParameterDesc(new javaxxmlnamespaceQName("", "arg2"), orgapacheaxisdescriptionParameterDescIN, new javaxxmlnamespaceQName(", "string"), javalangStringclass, false, false);
          paramsetOmittable(true);
          operaddParameter(param);
          opersetReturnType(new javaxxmlnamespaceQName(", "string"));
          opersetReturnClass(javalangStringclass);
          opersetReturnQName(new javaxxmlnamespaceQName("", "return"));
          opersetStyle(orgapacheaxisconstantsStyleWRAPPED);
          opersetUse(orgapacheaxisconstantsUseLITERAL);
          operaddFault(new orgapacheaxisdescriptionFaultDesc(
                        new javaxxmlnamespaceQName("发布的wsdl里的targetNamespace里的url", "Exception"),
                        "Exception",
                        new javaxxmlnamespaceQName("发布的wsdl里的targetNamespace里的url", "Exception"), 
                        true
                       ));
   callsetOperation( oper );
   callsetOperationName(new javaxxmlnamespaceQName("发布的wsdl里的targetNamespace里的url", "opName"));
    //调用Web Service,传入参数
   String res = ( String ) callinvoke( new Object[]("arg0","arg1"));
   Systemoutprintln("===============");
   return res;
  }
/
   @param args
  /
 public static void main(String[] args) {
  try {
   Systemoutprintln(getResult());
  } catch (MalformedURLException e) {
   eprintStackTrace();
  } catch (RemoteException e) {
   eprintStackTrace();
  } catch (ServiceException e) {
   eprintStackTrace();
  } catch (SOAPException e) {
   eprintStackTrace();
  }
    }
}
2、利用Eclipse自动生成WebService client代码就容易多了:
首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击Next,在Service definition中输入 WebService的发布地址,点击Finish
这样,WebService Client代码已经生成好了。
接下来写一个Test类,在main函数中输入如下代码:

String endpoint = "服务器的WebService的地址";
 YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);
 try {
 String resultStr = umspopMethod("arg0","arg1");
 Systemoutprintln(resultStr);
 } catch (Exception e) {
 Systemoutprintln("异常");
 eprintStackTrace();
} catch (RemoteException e) {
 Systemoutprintln("RemoteException异常");
 eprintStackTrace();
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13416265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-01
下一篇 2023-08-01

发表评论

登录后才能评论

评论列表(0条)

保存