2013-01-22 50 views
1

我有以下的Java类,并已出版了WSDL吧,我的问题是,反正是有有不同的web服务类和发布一个WSDL?我的意思是另一个单独的类到这个有很多方法的类,或者我必须有一个webservice类作为应用程序的主类来保留所有的webmethod方法并从那里生成wsdl?如何发布WSDL为Java

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){ 
     .... 
    } 
} 

回答

1

没错,这应该是你应该设计自己的应用程序的方式。你应该有一个统一的java文件,应该被暴露。应给客户多个端点。

+0

你的意思是我应该有一个Java文件,并在它的许多方法呢? –

+0

@JackMoore是的!这是遵循的方式。否则客户会把你颠倒:) – Prateek

1

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

如果您在使用服务的创建过程中的任何IDE插件,然后它会询问你想要的所有公共方法暴露于外部世界。所以在一个Java项目中,您可以拥有所需的任何类或方法。最后,将您的项目为Web服务时,你可以决定哪种方法,都可以作为终点/服务工作,那么这些将是你WSDL的一部分。

+0

我不能在eclipse中做它你有什么想法如何? –

+0

试试这个教程http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html –

1

工具wsgen因为JDK 1.6产生解WSDL文件只需一个服务端点接口SEI

wsgen [options] <SEI> 

你可以读到:

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

和:

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

另一方面,WSDL 1.1支持在单个WSDL文件中拥有多个服务,但这些服务共享类型。在这种情况下,它倾向于将所有服务都放在一个服务中。