0 0

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个答案 按时间排序 按投票排序

0 0

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服务端(3种方式)

    本文将详细介绍三种基于WSDL生成WebService服务端的方法:使用`wsdl2java`命令、通过SOAPUI工具及借助MyEclipse的Web Service项目功能。 #### 方法一:使用`wsdl2java`命令生成 `wsdl2java`是Apache CXF提供的一个...

    Axis 把WSDL生成JAVA类

    - **类生成策略**:对于每个在WSDL中定义的操作,WSDL2Java会生成相应的Java接口和实现类(存根或骨架)。每个类都有对应的get和set方法,以便于数据的封装和解封。 - **序列化支持**:生成的Java类通常实现了`...

    wsdl生成java代码工具

    本篇文章将详细探讨“wsdl生成java代码工具”的相关知识点,以及如何使用这个工具。 1. **WSDL简介**: WSDL文件描述了Web服务的接口,包括服务提供的操作、输入和输出消息的格式,以及服务的位置。它使得开发者...

    wsdl文件生成java webservice 工具(附带生成后调用方法)

    4. **实现服务逻辑**: 在生成的服务接口(Stub)中,你需要编写具体的业务逻辑代码,这将是Web服务的核心部分。 5. **部署Web服务**: 使用生成的SEI类,将Web服务部署到支持Java EE的服务器上,如Tomcat或Jetty。...

    Java解析wsdl文档获取具体的方法与参数

    总结,Java解析WSDL文档获取具体的方法与参数涉及的主要知识点包括:XML解析(DOM)、JAX-WS框架、`javax.xml.ws.Service`类的使用,以及如何基于WSDL生成服务客户端代码。理解这些概念,将有助于开发和消费Web服务...

    xfire 插件 wsdl生成

    XFire是一款早期的Java ...- 确保服务接口和实现符合WSDL生成的要求,如使用了正确的数据类型和注解。 通过以上步骤,即使在没有网络连接的情况下,你也可以使用XFire插件生成WSDL,从而实现Web服务的离线开发和部署。

    xfire根据WSDL生成客户端代码

    使用XFire根据WSDL生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...

    利用wsdl.exe生成webservice代理类

    根据提供的wsdl生成webservice代理类 1、开始-&gt;程序-&gt;Visual Studio 2005 命令提示 2、输入如下红色标记部分 D:\Program Files\Microsoft Visual Studio 8\VC&gt;wsdl /language:c# /n:TestDemo /out:d:\Temp\...

    wsdl生成webserice服务端

    总的来说,通过WSDL生成Web服务服务器端涉及到了服务描述、代码生成、业务实现和部署等多个环节。熟练掌握这一流程对开发高质量、可复用的Web服务至关重要。而对于初学者,理解WSDL的结构,选择合适的工具,并结合...

    WebService的WSDL文件生成Java代码工具

    Java中,通常使用Apache CXF、 Axis2 或 JAX-WS等库来处理WSDL文件,生成对应的Java类和服务接口。以下是使用这些工具的一般步骤: 1. **Apache CXF**: - 首先,下载并安装Apache CXF。 - 使用CXF的wsdl2java...

    Eclipse根据wsdl文件逆向生成webservice客户端项目源码

    5. **备注信息**:如果在描述中提到包含备注信息,那么可能在生成的源码中,某些方法或类会有注释,这些注释通常会解释服务的用途、参数含义或其他重要细节。 了解了这些基础知识后,开发者可以更有效地利用Eclipse...

    webservice根据wsdl生成客户端代理类所需jar包

    在完成代理类生成后,开发者就可以通过实例化这些类并调用其方法来与Web服务进行交互,从而执行诸如发送请求、接收响应等操作。这大大简化了Web服务客户端的开发工作,使得开发人员能够专注于业务逻辑,而不是底层的...

    myeclipse根据wsdl文件生成webservice服务端

    2. **生成服务骨架**:导入WSDL后,MyEclipse会自动生成服务骨架类。这些类包含了Web服务的接口和实现,它们基于WSDL文件中定义的操作。你可以查看源码,了解服务的具体结构和方法。 3. **实现业务逻辑**:在生成的...

    .net web服务wsdl生成工具.zip

    总之,.NET Web服务WSDL生成工具是.NET开发中不可或缺的一部分,它简化了Web服务的消费和实现过程,促进了不同系统间的互操作性。无论是ASMX还是WCF,都可以方便地生成WSDL文件,为跨平台的通信提供了清晰的规范。...

    gsoap将wsdl生成c++调用的文件 文档,代码

    《gSOAP:基于WSDL生成C++调用的文件详解》 gSOAP是一个开源的工具集,用于在C和C++中实现Web服务客户端和服务端。它特别适用于处理SOAP(简单对象访问协议)消息,而WSDL(Web服务描述语言)则是一种XML格式,用于...

    根据wsdl生成axis的服务端和客户端__工具.rar

    本压缩包文件“根据wsdl生成axis的服务端和客户端__工具.rar”提供了一种基于Apache Axis工具生成服务端和客户端代码的方法,以简化基于WSDL的Web服务开发。 首先,我们需要理解Apache Axis。Axis是一个开源的Java...

    关于wsdl生成java的方式

    4. **生成的Java代码**:工具会根据WSDL生成一系列Java类,包括服务接口(Service Interface)、端点接口(Endpoint Interface)、消息类(Message Classes)以及服务实现类(Service Implementation),有时还包括...

    wsdl反向生成工具

    1. **axis.cmd**:这可能是Apache Axis命令行工具,Axis是Java平台上一个流行的Web服务框架,它提供了从WSDL生成客户端代理类的能力。`axis.cmd`可能是用于执行Axis命令的批处理文件,使得用户能够在命令行环境中...

    WSDl生成WebService接口及调用

    在本主题中,我们将深入探讨如何使用WSDL生成WebService接口以及编写Test调用方法进行测试。 1. WSDL基础 WSDL文件是一个XML文档,它描述了服务的位置(endpoint)、使用的消息格式(message)和服务提供的操作...

    wsdl.exe-生成wsdl的代码

    总结来说,`wsdl.exe`是一个强大的工具,它在.NET开发中扮演着重要角色,通过自动化生成WSDL文档和客户端代理类,极大地简化了Web服务的开发和使用。理解`wsdl.exe`的工作方式和配置,对于.NET开发者来说,能够提高...

Global site tag (gtag.js) - Google Analytics