2013-01-22 53 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文件中擁有多個服務,但這些服務共享類型。在這種情況下,它傾向於將所有服務都放在一個服務中。