如何为java发布wsdl

如何为java发布wsdl,java,web-services,Java,Web Services,我有以下java类,并为其发布了一个wsdl,我的问题是,是否有不同的webservice类并发布单个wsdl?我指的是另一个单独的类,这个类有很多方法,或者我必须有一个webservice类作为应用程序的主类,以保留所有webmethod方法并从中生成wsdl package com.Services; import javax.jws.WebService; import javax.jws.WebMethod; @WebService(name = "Hellos", targetN

我有以下java类,并为其发布了一个wsdl,我的问题是,是否有不同的webservice类并发布单个wsdl?我指的是另一个单独的类,这个类有很多方法,或者我必须有一个webservice类作为应用程序的主类,以保留所有webmethod方法并从中生成wsdl

package com.Services;


import javax.jws.WebService;
import javax.jws.WebMethod;

@WebService(name = "Hellos", targetNamespace = "http://localhost:8081/Mywebservice2/services/Hellos")
public class Hellos {


    @WebMethod
    public Customer[] mycustomers() {
    .....

    }

    @WebMethod
    public String Receiver(String name){
        ....
    }
}

确切地说,这应该是您设计应用程序的方式。您应该有一个合并的java文件,并且应该公开该文件。应该为客户提供多个端点

WSDL对应于您的服务,每个公共方法都对应于一个服务。您可以编写许多类和方法,但如果方法是私有的,它们将不会成为wsdl的一部分

若您使用任何IDE插件,那个么它会在服务创建期间询问您希望向外部世界公开哪些公共方法。因此,在一个java项目中,您可以拥有任意多的类或方法。最后,在将项目转换为web服务时,您可以决定哪些方法可以作为端点/服务使用,然后这些方法将成为您的WSDL

工具的一部分,因为用于生成de WSDL文件的JDK 1.6只需要一个服务端点接口或SEI

wsgen[选项]
你可以读到:

wsgen工具生成JAX-WSWeb服务中使用的JAX-WS可移植工件。该工具读取web服务端点实现类(SEI),并生成web服务部署和调用所需的所有构件

以及:

请注意,您不必在开发时生成WSDL,因为当您部署服务时,JAXWS运行时将自动为您生成WSDL


另一方面,支持在单个WSDL文件中包含多个服务,但这些服务共享类型。在这种情况下,最好将所有内容放在一个服务中。

你的意思是我应该有一个java文件和许多方法吗?@JackMoore是的!这就是接下来的路。否则客户端会把你翻个底朝天:)我在eclipse中做不到,你知道怎么做吗?试试这个教程
wsgen [options] <SEI>