最近很多小伙伴都在问webservicedelphi客户端java服务器端传输简单和复杂对象小demo和delphiwebsocket服务器端这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还
最近很多小伙伴都在问webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo和delphi websocket服务器端这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展axis2 webservice 服务器端和客户端实现例子、Axis2 webservice客户端(wsdd)复杂对象、cxf发布webservice与java客户端解析webservice、Delphi 7 调用 C# WebService等相关知识,下面开始了哦!
本文目录一览:- webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo(delphi websocket服务器端)
- axis2 webservice 服务器端和客户端实现例子
- Axis2 webservice客户端(wsdd)复杂对象
- cxf发布webservice与java客户端解析webservice
- Delphi 7 调用 C# WebService
webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo(delphi websocket服务器端)
这个小demo完全是为了实现,为考虑过多的设计方面的东西,请大家见谅.
原代码部分因为我不知道怎么上传,有需要的朋友QQ联系我吧229844483.免费呵呵!
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)复杂对象
使用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
一.服务端发布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全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
我们今天的关于webservice delphi客户端 java服务器端 传输简单和复杂对象 小demo和delphi websocket服务器端的分享已经告一段落,感谢您的关注,如果您想了解更多关于axis2 webservice 服务器端和客户端实现例子、Axis2 webservice客户端(wsdd)复杂对象、cxf发布webservice与java客户端解析webservice、Delphi 7 调用 C# WebService的相关信息,请在本站查询。
本文标签: