1

我有以下 java 类并为它发布了一个 wsdl,我的问题是无论如何都有不同的 web 服务类并发布一个 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){
        ....
    }
}
4

3 回答 3

1

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

于 2013-01-22T04:18:50.967 回答
1

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

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

于 2013-01-22T04:42:54.760 回答
1

wsgen从 JDK 1.6 开始,用于生成 de WSDL 文件的工具只需要一个 Service Endpoint InterfaceSEI

wsgen [options] <SEI>

你可以读到:

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

和:

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

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

于 2013-01-22T04:50:42.673 回答