GVKun编程网logo

webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo(delphi websocket服务器端)

7

最近很多小伙伴都在问webservicedelphi客户端java服务器端传输简单和复杂对象小demo和delphiwebsocket服务器端这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还

最近很多小伙伴都在问webservice delphi客户端 java服务器端 传输简单和复杂对象 小demodelphi websocket服务器端这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展axis2 webservice 服务器端和客户端实现例子、Axis2 webservice客户端(wsdd)复杂对象、cxf发布webservice与java客户端解析webservice、Delphi 7 调用 C# WebService等相关知识,下面开始了哦!

本文目录一览:

webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo(delphi websocket服务器端)

webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo(delphi websocket服务器端)

这个小demo完全是为了实现,为考虑过多的设计方面的东西,请大家见谅.

原代码部分因为我不知道怎么上传,有需要的朋友QQ联系我吧229844483.免费呵呵!

axis2 webservice 服务器端和客户端实现例子

axis2 webservice 服务器端和客户端实现例子

【1.首先axis2的环境部署】

     下载两个包: axis2-1.6.1-bin.zip    axis2.war

     解压axis2-1.6.1-bin.zip 包,放到d盘。

     

     axis2.war文件放到tomcat服务器的webapps目录下。

    

  浏览器地址:点击打开链接   表明axis2服务器端部署成功。

  

   客户端可以用axis2-bin包中提供的wsdl2java.bat 工具实现。首先得配置环境。

  (1)设置环境变量: 

   

   

    找到%AXIS2_HOME%\bin目录下的wsdl2java.bat.打开修改一下。

    找到set_RUNJAVA="%JAVA_HOME%\bin\java"这一行下面加上一行

          setJAVA_OPTS="-Djava.ext.dirs=%AXIS2_HOME%\lib"

    

     eclipse下创建axis2client project

     cmd 进入axis2client 目录生成存根代码

     运行命令:

     WSDL2java –uri  http://localhost:8080/axis2/services/helloService?wsdl

     

  【客户端创建成功】


【测试】

package cn.com.webxml;

import cn.com.webxml.WeatherWebServiceStub.arrayofstring;

public class Test {
	public static void main(String[] args) throws Exception {
		
		WeatherWebServiceStub stub = new WeatherWebServiceStub();  
		
        WeatherWebServiceStub.GetWeatherbyCityName request = 
        	new WeatherWebServiceStub.GetWeatherbyCityName(); 
        
        request.setTheCityName("广州");  
        
        WeatherWebServiceStub.GetWeatherbyCityNameResponse response = 
        	stub.getWeatherbyCityName(request);  
        
        arrayofstring arrayofstring = response.getGetWeatherbyCityNameResult(); 
        //迭代出每一项
          for(int i=0;i<arrayofstring.getString().length;i++){
        	  System.out.println(arrayofstring.getString()[i]);  
          }
		
	}

}
【运行结果】

 


【出现的问题】

服务器端service 是要打包成aar的。用java cvf hello.aar .    用axis插件都可以。

发布到D:\tomcat6\webapps\axis2\WEB-INF\services  目录下。

网上有很多的例子:

【参考资料】

http://www.voidcn.com/article/p-canlunpp-ua.html

http://www.lifeba.org/arch/java_axis2_webservice.html

http://tech.ddvip.com/2009-01/1232161765106125.html

http://aihhd2008.iteye.com/blog/602828

Axis2 webservice客户端(wsdd)复杂对象

Axis2 webservice客户端(wsdd)复杂对象

使用org.apache.axis.description.OperationDesc oper;org.apache.axis.description.ParameterDesc param;

组织对应的bo对象,并设置调用方法名,方法返回值及传递值。

import javax.xml.namespace.QName;


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


import com.bizenit.ssows.accessservice.AccessServiceImplProxy;
import com.bizenit.ssows.accessservice.GetUserNameRequest;
import com.bizenit.ssows.accessservice.GetUserNameResponse;
import com.bizenit.ssows.accessservice.LoggedInRequest;
import com.bizenit.ssows.accessservice.LoggedInResponse;
import com.bizenit.ssows.accessservice.TargetAcctInRequest;
import com.bizenit.ssows.accessservice.TargetAcctInResponse;

try{  
			org.apache.axis.description.OperationDesc oper;
			org.apache.axis.description.ParameterDesc param;
	        
			oper = new org.apache.axis.description.OperationDesc();
	        oper.setName("TargetAcctIn");
	        param = new org.apache.axis.description.ParameterDesc(
	        		new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice","TargetAcctInRequest"),org.apache.axis.description.ParameterDesc.IN,new javax.xml.namespace.QName(
	        						"http://ssows.bizenit.com/accessservice",">TargetAcctInRequest"),com.bizenit.ssows.accessservice.TargetAcctInRequest.class,false,false);
	        oper.addParameter(param);
	        oper.setReturnType(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice",">TargetAcctInResponse"));
	        oper.setReturnClass(TargetAcctInResponse.class);
	        oper.setReturnQName(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice","TargetAcctInResponse"));
	        oper.setStyle(org.apache.axis.constants.Style.DOCUMENT);
	        oper.setUse(org.apache.axis.constants.Use.LIteraL);
	        //oper.setReturnQName(new javax.xml.namespace.QName(
	          //      "http://xml.apache.org/xml-soap","Element"));
	        //oper.setReturnClass(org.w3c.dom.Element.class);
	        // 指定访问web服务的位置  
			String url = "http://10.1.48.162:14100/shmetro-ssows/sumwebservice/accessServiceImpl";  
			// 创建服务  
			Service service = new Service(); 
			service.setTypeMappingVersion("1.2");
			// 创建调用  
			Call call = (Call)service.createCall();  
			// 设置调用服务来源  
			
			call.setoperation(oper);
			call.setTargetEndpointAddress(url);  
			call.setUseSOAPAction(true);
	        call.setSOAPActionURI("");
	        call.setEncodingStyle(null);
	        call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR,Boolean.FALSE);
	        call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS,Boolean.FALSE);
	        call.setSOAPVersion(org.apache.axis.soap.soAPConstants.soAP11_CONSTANTS);
			// 设置调用方法名  
			call.setoperationName(new QName("","TargetAcctIn"));  
			// 调用  
			//call.setPortName(new QName("http://ssows.bizenit.com/accessservice","AccessServiceImplSoap11"));
			TargetAcctInRequest r = new TargetAcctInRequest("greata","G01013800003","Xietong");
			LoggedInRequest rr = new LoggedInRequest("Xietong","CE09B81E92AF1BF5","G00100000226","Xietong");
			
			TargetAcctInResponse result = (TargetAcctInResponse)call.invoke(new Object[]{r});  
			System.out.print("result:  " + result.getTargetacct() );  
			}catch(Exception e){  
			e.printstacktrace();  
			} 


/**
 * LoggedInRequest.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.4 Apr 22,2006 (06:55:48 PDT) WSDL2Java emitter.
 */

package com.bizenit.ssows.accessservice;

public class TargetAcctInRequest  implements java.io.Serializable {
    private java.lang.String targetmark;

    private java.lang.String appacct;

    private java.lang.String appmark;

    public TargetAcctInRequest() {
    }

    public TargetAcctInRequest(
           java.lang.String targetmark,java.lang.String appacct,java.lang.String appmark) {
           this.targetmark = targetmark;
           this.appacct = appacct;
           this.appmark = appmark;
    }





    public java.lang.String getTargetmark() {
		return targetmark;
	}

	public void setTargetmark(java.lang.String targetmark) {
		this.targetmark = targetmark;
	}

	/**
     * Gets the appacct value for this LoggedInRequest.
     * 
     * @return appacct
     */
    public java.lang.String getAppacct() {
        return appacct;
    }


    /**
     * Sets the appacct value for this LoggedInRequest.
     * 
     * @param appacct
     */
    public void setAppacct(java.lang.String appacct) {
        this.appacct = appacct;
    }


    /**
     * Gets the appmark value for this LoggedInRequest.
     * 
     * @return appmark
     */
    public java.lang.String getAppmark() {
        return appmark;
    }


    /**
     * Sets the appmark value for this LoggedInRequest.
     * 
     * @param appmark
     */
    public void setAppmark(java.lang.String appmark) {
        this.appmark = appmark;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof TargetAcctInRequest)) return false;
        TargetAcctInRequest other = (TargetAcctInRequest) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true && 
            ((this.targetmark==null && other.getTargetmark()==null) || 
             (this.targetmark!=null &&
              this.targetmark.equals(other.getTargetmark()))) &&
            ((this.appacct==null && other.getAppacct()==null) || 
             (this.appacct!=null &&
              this.appacct.equals(other.getAppacct()))) &&
            ((this.appmark==null && other.getAppmark()==null) || 
             (this.appmark!=null &&
              this.appmark.equals(other.getAppmark())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getTargetmark() != null) {
            _hashCode += getTargetmark().hashCode();
        }
       if (getAppacct() != null) {
            _hashCode += getAppacct().hashCode();
        }
        if (getAppmark() != null) {
            _hashCode += getAppmark().hashCode();
        }
        __hashCodeCalc = false;
        return _hashCode;
    }

    // Type Metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
        new org.apache.axis.description.TypeDesc(TargetAcctInRequest.class,true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice",">TargetAcctInRequest"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("targetmark");
        elemField.setXmlName(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice","targetmark"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("appacct");
        elemField.setXmlName(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice","appacct"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("appmark");
        elemField.setXmlName(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice","appmark"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
    }

    /**
     * Return type Metadata object
     */
    public static org.apache.axis.description.TypeDesc getTypeDesc() {
        return typeDesc;
    }

    /**
     * Get Custom Serializer
     */
    public static org.apache.axis.encoding.Serializer getSerializer(
           java.lang.String mechType,java.lang.class _javaType,javax.xml.namespace.QName _xmlType) {
        return 
          new  org.apache.axis.encoding.ser.BeanSerializer(
            _javaType,_xmlType,typeDesc);
    }

    /**
     * Get Custom Deserializer
     */
    public static org.apache.axis.encoding.Deserializer getDeserializer(
           java.lang.String mechType,javax.xml.namespace.QName _xmlType) {
        return 
          new  org.apache.axis.encoding.ser.BeanDeserializer(
            _javaType,typeDesc);
    }

}


/**
 * TargetAcctInResponse.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.4 Apr 22,2006 (06:55:48 PDT) WSDL2Java emitter.
 */

package com.bizenit.ssows.accessservice;

public class TargetAcctInResponse  implements java.io.Serializable {
    private java.lang.String targetacct;

    public TargetAcctInResponse() {
    }

    public TargetAcctInResponse(
           java.lang.String targetacct) {
           this.targetacct = targetacct;
    }


    /**
     * Gets the targetacct value for this TargetAcctInResponse.
     * 
     * @return targetacct
     */
    public java.lang.String getTargetacct() {
        return targetacct;
    }


    /**
     * Sets the targetacct value for this TargetAcctInResponse.
     * 
     * @param targetacct
     */
    public void setTargetacct(java.lang.String targetacct) {
        this.targetacct = targetacct;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof TargetAcctInResponse)) return false;
        TargetAcctInResponse other = (TargetAcctInResponse) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true && 
            ((this.targetacct==null && other.getTargetacct()==null) || 
             (this.targetacct!=null &&
              this.targetacct.equals(other.getTargetacct())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getTargetacct() != null) {
            _hashCode += getTargetacct().hashCode();
        }
        __hashCodeCalc = false;
        return _hashCode;
    }

    // Type Metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
        new org.apache.axis.description.TypeDesc(TargetAcctInResponse.class,">TargetAcctInResponse"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("targetacct");
        elemField.setXmlName(new javax.xml.namespace.QName("http://ssows.bizenit.com/accessservice","targetacct"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema",typeDesc);
    }

}

cxf发布webservice与java客户端解析webservice

cxf发布webservice与java客户端解析webservice

cxf发布webservice与java客户端解析webservice


一.服务端发布webservice(CXF,添加cxf所需jar):
1.接口类

package com.god.ws
@WebService(targetNamespace="http://webservice.myservice.god.com")
public interface IWsPersonInfo {
    //根据姓名和年龄查询人员信息
    public String getPersonInfo(@WebParam(name = "name")String name,@WebParam(name="age")int age);
}

2.实现类

package com.god.ws.impl
@WebService(endpointInterface = "com.god.ws",targetNamespace="http://webservice.myservice.god.com")
public class WsPersonInfoImpl implements IWsPersonInfo {
	
	public String getPersonInfo(String NAME,int age){
		StringBuilder strXml = new StringBuilder();
		strXml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
	        strXml.append(".......添加人员信息...........");
		return strXml.toString();
	}
}

3.spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

    <import resource="classpath:meta-inf/cxf/cxf.xml"/>
    <import resource="classpath:meta-inf/cxf/cxf-extension-soap.xml"/>
    <import resource="classpath:meta-inf/cxf/cxf-servlet.xml"/>

    <jaxws:endpoint id="infoEndpoint" implementor="com.god.ws.impl.WsPersonInfoImpl"  address="/PersonInfo"></jaxws:endpoint>
</beans>

4.web.xml配置CXF

<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
	org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/webservices/*</url-pattern>
</servlet-mapping>

二.客户端解析webservice

// 获取SOAP连接工厂
SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance();
// 从SOAP连接工厂创建SOAP连接对象
SOAPConnection connection = factory.createConnection();
// 获取消息工厂
MessageFactory mFactory = MessageFactory.newInstance();
// 从消息工厂创建SOAP消息对象
SOAPMessage message = mFactory.createMessage();

// 创建SOAPPart对象
SOAPPart part = message.getSOAPPart();
// 创建SOAP信封对象
SOAPEnvelope envelope = part.getEnvelope();
// 创建SOAPHeader对象
SOAPHeader header = message.getSOAPHeader();
// 创建SOAPBody对象
SOAPBody body = envelope.getBody();


// 创建XML的根元素 ,设置查询参数   
SOAPHeaderElement headerElementRoot1 = header.addHeaderElement(new QName("http://webservice.myservice.god.com","name","tns"));
SOAPHeaderElement headerElementRoot2 = header.addHeaderElement(new QName("http://webservice.myservice.god.com","age","tns"));
body.addBodyElement(new QName("http://webservice.myservice.god.com","getPersonInfo","tns"));
headerElementRoot1.addTextNode("神仙");
headerElementRoot2.addTextNode("28");

// 访问Web服务地址
SOAPMessage reMessage = connection.call(message,new URL("http://localhost:8080/项目名/webservices/PersonInfo?wsdl"));

//strRootXml即为服务端传过来的xml数据
String strRootXml = reMessage.getSOAPPart().getEnvelope().getBody().getTextContent();
connection.close();

Delphi 7 调用 C# WebService

Delphi 7 调用 C# WebService

总结

以上是小编为你收集整理的Delphi 7 调用 C# WebService全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

我们今天的关于webservice delphi客户端 java服务器端 传输简单和复杂对象 小demodelphi websocket服务器端的分享已经告一段落,感谢您的关注,如果您想了解更多关于axis2 webservice 服务器端和客户端实现例子、Axis2 webservice客户端(wsdd)复杂对象、cxf发布webservice与java客户端解析webservice、Delphi 7 调用 C# WebService的相关信息,请在本站查询。

本文标签: