2009-10-12 102 views
1

我有一堆非常簡單的函數。每個功能都有一個輸入和一個輸出。將JAXB生成的類公開爲WSDL Web服務

OutputType function func(InputType); 

輸入/輸出的類型在xsd模式中定義,並使用JAXB/XJC生成到Java類中。現在我想將這些函數公開爲在Geronimo上運行的WSDL Web服務。

我只看了一下Axis/WSDL2Java/Java2WSDL;我認爲這與我的功能創建相似。

我想,我可以使用Java2WSDL從我的函數和輸入/輸出類型中生成WSDL。 ,然後使用一些工具來生成服務器/客戶端綁定,

任何人都可以提供更多的進一步的建議嗎?特別是我已經在xsd模式中定義了函數的輸入/輸出。

非常感謝。

綜述:


這些是我現在有....

有一個輸入和一個outout許多實現的功能。

public OutputType functionXXX(InputType in){....;返回輸出; }

InputType和OutputType已經在一個xsd模式中定義了(並且轉化爲Jaxb/xjc的java類)。


我要的是....

構建Web服務來執行這些功能。 不要觸摸已實現功能的代碼。 並與WSDL,

+0

一些示例或教程會很棒:) – elgcom 2009-10-12 17:39:54

回答

2

我找到了一個教程,使用CXF做你正在尋找here

該文件聲稱使用合同第一種方法,但它不完全是。在討論基於SOAP的服務時,合同首先意味着首先創建描述符(WSDL,XSD)。然後您從這些描述符中生成任何代碼工件。您可以在原始博客文章中查看關於原作者選詞的辯論。

這就是說,合同優先方法有很多好處取決於你想要完成什麼。有關它的一些信息,請參閱Spring Web Services教程。

+0

這種情況是,我們已經有很多實現的業務邏輯函數沒有作爲Web服務運行,我們將製作一個「接口」來公開它們。合同優先的方法可能不適合這種情況。我對嗎?我不想觸摸或更改這些實現的代碼,甚至不想添加一些註釋。 感謝您的回答,我將看看CXF。 – elgcom 2009-10-12 19:39:13

1

如果您有一個現有的模式,並且有現有的JAXB2綁定,那麼根據我的經驗,Spring WebServices是迄今爲止將此作爲SOAP Web服務公開的最簡單方法。其理念是「合同第一」,這正是你所擁有的。您不需要生成任何附加綁定,只需將Spring MVC的端點連接起來,插入編組器即可。它會反省你的模式尋找類似操作的東西,並將它們自動公開爲WSDL操作(如果默認的自動發現不起作用,可以告訴它該如何操作)。