-
wsdl生成的类没有具体的方法实现?5
我写了一个webservice,服务端有一个接口SendDlrFeeInfoService和接口的具体实现,通过wsdl2java生成类的时候有SendDLRFeeInfo(只有一个参数)
package com.mobifusion.interfaces; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "SendDLRFeeInfo", propOrder = { "dlrinfoArray" }) public class SendDLRFeeInfo { protected List<Dlrinfo> dlrinfoArray; public List<Dlrinfo> getDlrinfoArray() { if (dlrinfoArray == null) { dlrinfoArray = new ArrayList<Dlrinfo>(); } return this.dlrinfoArray; } }
、SendDLRFeeInfoResponse、SendDlrFeeInfoService(interface)
package com.mobifusion.interfaces; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.ws.RequestWrapper; import javax.xml.ws.ResponseWrapper; import com.mobifusion.interfaces.Dlrinfo; @WebService(targetNamespace = "http://interfaces.mobifusion.com/", name = "SendDlrFeeInfoService") @XmlSeeAlso({ObjectFactory.class}) public interface SendDlrFeeInfoService { @WebResult(name = "ReturnMessage", targetNamespace = "") @RequestWrapper(localName = "SendDLRFeeInfo", targetNamespace = "http://interfaces.mobifusion.com/", className = "com.mobifusion.interfaces.SendDLRFeeInfo") @WebMethod(operationName = "SendDLRFeeInfo") @ResponseWrapper(localName = "SendDLRFeeInfoResponse", targetNamespace = "http://interfaces.mobifusion.com/", className = "com.mobifusion.interfaces.SendDLRFeeInfoResponse") public com.mobifusion.interfaces.ReturnMessage sendDLRFeeInfo( @WebParam(name = "dlrinfoArray", targetNamespace = "") Dlrinfo[] dlrinfoArray ); }
,还有一个SendDlrFeeInfoServiceImplService,
里面的内容 package com.mobifusion.interfaces.impl;
import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.WebEndpoint; import javax.xml.ws.WebServiceClient; import javax.xml.ws.WebServiceFeature; import com.mobifusion.interfaces.SendDlrFeeInfoService; import javax.xml.ws.Service; @WebServiceClient(name = "SendDlrFeeInfoServiceImplService", wsdlLocation = "http://localhost:8080/webservice/service/SendDlrFeeInfoService?wsdl", targetNamespace = "http://impl.interfaces.mobifusion.com/") public class SendDlrFeeInfoServiceImplService extends Service { public final static URL WSDL_LOCATION; public final static QName SERVICE = new QName("http://impl.interfaces.mobifusion.com/", "SendDlrFeeInfoServiceImplService"); public final static QName SendDlrFeeInfoServiceImplPort = new QName("http://impl.interfaces.mobifusion.com/", "SendDlrFeeInfoServiceImplPort"); static { URL url = null; try { url = new URL("http://localhost:8080/webservice/service/SendDlrFeeInfoService?wsdl"); } catch (MalformedURLException e) { java.util.logging.Logger.getLogger(SendDlrFeeInfoServiceImplService.class.getName()) .log(java.util.logging.Level.INFO, "Can not initialize the default wsdl from {0}", "http://localhost:8080/webservice/service/SendDlrFeeInfoService?wsdl"); } WSDL_LOCATION = url; } public SendDlrFeeInfoServiceImplService(URL wsdlLocation) { super(wsdlLocation, SERVICE); } public SendDlrFeeInfoServiceImplService(URL wsdlLocation, QName serviceName) { super(wsdlLocation, serviceName); } public SendDlrFeeInfoServiceImplService() { super(WSDL_LOCATION, SERVICE); } @WebEndpoint(name = "SendDlrFeeInfoServiceImplPort") public SendDlrFeeInfoService getSendDlrFeeInfoServiceImplPort() { return super.getPort(SendDlrFeeInfoServiceImplPort, SendDlrFeeInfoService.class); } @WebEndpoint(name = "SendDlrFeeInfoServiceImplPort") public SendDlrFeeInfoService getSendDlrFeeInfoServiceImplPort(WebServiceFeature... features) { return super.getPort(SendDlrFeeInfoServiceImplPort, SendDlrFeeInfoService.class, features); } }
请问各位大大们,我在写客户端时怎么去调用那个接口方法?还有我怎么感觉这个wsdl2java生成的代码不对?
2012年5月21日 11:04
1个答案 按时间排序 按投票排序
-
axis2 就是wsdl2java的 来创建server端代码和client端代码的
官网这里就不说了。
创建方式:
server:
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.jibx -d jibx -s -ss -sd -ssi -uw -o build\service
client:
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.clients -d adb -s -o build\client
client 要写main函数的:package samples.quickstart.clients; import samples.quickstart.service.adb.StockQuoteServiceStub; public class ADBClient{ public static void main(java.lang.String args[]){ try{ StockQuoteServiceStub stub = new StockQuoteServiceStub ("http://localhost:8080/axis2/services/StockQuoteService"); getPrice(stub); update(stub); getPrice(stub); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* fire and forget */ public static void update(StockQuoteServiceStub stub){ try{ StockQuoteServiceStub.Update req = new StockQuoteServiceStub.Update(); req.setSymbol ("ABC"); req.setPrice (42.35); stub.update(req); System.err.println("price updated"); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* two way call/receive */ public static void getPrice(StockQuoteServiceStub stub){ try{ StockQuoteServiceStub.GetPrice req = new StockQuoteServiceStub.GetPrice(); req.setSymbol("ABC"); StockQuoteServiceStub.GetPriceResponse res = stub.getPrice(req); System.err.println(res.get_return()); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } }
2012年5月21日 22:00
相关推荐
本文将详细介绍三种基于WSDL生成WebService服务端的方法:使用`wsdl2java`命令、通过SOAPUI工具及借助MyEclipse的Web Service项目功能。 #### 方法一:使用`wsdl2java`命令生成 `wsdl2java`是Apache CXF提供的一个...
- **类生成策略**:对于每个在WSDL中定义的操作,WSDL2Java会生成相应的Java接口和实现类(存根或骨架)。每个类都有对应的get和set方法,以便于数据的封装和解封。 - **序列化支持**:生成的Java类通常实现了`...
本篇文章将详细探讨“wsdl生成java代码工具”的相关知识点,以及如何使用这个工具。 1. **WSDL简介**: WSDL文件描述了Web服务的接口,包括服务提供的操作、输入和输出消息的格式,以及服务的位置。它使得开发者...
4. **实现服务逻辑**: 在生成的服务接口(Stub)中,你需要编写具体的业务逻辑代码,这将是Web服务的核心部分。 5. **部署Web服务**: 使用生成的SEI类,将Web服务部署到支持Java EE的服务器上,如Tomcat或Jetty。...
总结,Java解析WSDL文档获取具体的方法与参数涉及的主要知识点包括:XML解析(DOM)、JAX-WS框架、`javax.xml.ws.Service`类的使用,以及如何基于WSDL生成服务客户端代码。理解这些概念,将有助于开发和消费Web服务...
XFire是一款早期的Java ...- 确保服务接口和实现符合WSDL生成的要求,如使用了正确的数据类型和注解。 通过以上步骤,即使在没有网络连接的情况下,你也可以使用XFire插件生成WSDL,从而实现Web服务的离线开发和部署。
使用XFire根据WSDL生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...
根据提供的wsdl生成webservice代理类 1、开始->程序->Visual Studio 2005 命令提示 2、输入如下红色标记部分 D:\Program Files\Microsoft Visual Studio 8\VC>wsdl /language:c# /n:TestDemo /out:d:\Temp\...
总的来说,通过WSDL生成Web服务服务器端涉及到了服务描述、代码生成、业务实现和部署等多个环节。熟练掌握这一流程对开发高质量、可复用的Web服务至关重要。而对于初学者,理解WSDL的结构,选择合适的工具,并结合...
Java中,通常使用Apache CXF、 Axis2 或 JAX-WS等库来处理WSDL文件,生成对应的Java类和服务接口。以下是使用这些工具的一般步骤: 1. **Apache CXF**: - 首先,下载并安装Apache CXF。 - 使用CXF的wsdl2java...
5. **备注信息**:如果在描述中提到包含备注信息,那么可能在生成的源码中,某些方法或类会有注释,这些注释通常会解释服务的用途、参数含义或其他重要细节。 了解了这些基础知识后,开发者可以更有效地利用Eclipse...
在完成代理类生成后,开发者就可以通过实例化这些类并调用其方法来与Web服务进行交互,从而执行诸如发送请求、接收响应等操作。这大大简化了Web服务客户端的开发工作,使得开发人员能够专注于业务逻辑,而不是底层的...
2. **生成服务骨架**:导入WSDL后,MyEclipse会自动生成服务骨架类。这些类包含了Web服务的接口和实现,它们基于WSDL文件中定义的操作。你可以查看源码,了解服务的具体结构和方法。 3. **实现业务逻辑**:在生成的...
总之,.NET Web服务WSDL生成工具是.NET开发中不可或缺的一部分,它简化了Web服务的消费和实现过程,促进了不同系统间的互操作性。无论是ASMX还是WCF,都可以方便地生成WSDL文件,为跨平台的通信提供了清晰的规范。...
《gSOAP:基于WSDL生成C++调用的文件详解》 gSOAP是一个开源的工具集,用于在C和C++中实现Web服务客户端和服务端。它特别适用于处理SOAP(简单对象访问协议)消息,而WSDL(Web服务描述语言)则是一种XML格式,用于...
本压缩包文件“根据wsdl生成axis的服务端和客户端__工具.rar”提供了一种基于Apache Axis工具生成服务端和客户端代码的方法,以简化基于WSDL的Web服务开发。 首先,我们需要理解Apache Axis。Axis是一个开源的Java...
4. **生成的Java代码**:工具会根据WSDL生成一系列Java类,包括服务接口(Service Interface)、端点接口(Endpoint Interface)、消息类(Message Classes)以及服务实现类(Service Implementation),有时还包括...
1. **axis.cmd**:这可能是Apache Axis命令行工具,Axis是Java平台上一个流行的Web服务框架,它提供了从WSDL生成客户端代理类的能力。`axis.cmd`可能是用于执行Axis命令的批处理文件,使得用户能够在命令行环境中...
在本主题中,我们将深入探讨如何使用WSDL生成WebService接口以及编写Test调用方法进行测试。 1. WSDL基础 WSDL文件是一个XML文档,它描述了服务的位置(endpoint)、使用的消息格式(message)和服务提供的操作...
总结来说,`wsdl.exe`是一个强大的工具,它在.NET开发中扮演着重要角色,通过自动化生成WSDL文档和客户端代理类,极大地简化了Web服务的开发和使用。理解`wsdl.exe`的工作方式和配置,对于.NET开发者来说,能够提高...