2012-05-28 47 views
0

我無法在我的Web服務的方法中拋出異常。當我拋出一個異常,在我的方法,並嘗試測試從肥皂UI我的應用程序也給出了錯誤:在Java Web服務中拋出用戶定義的異常時發生錯誤

Failed to import WSDL 

java.lang.NullPointerException 

我的問題是:

如何寫用戶定義的Java Web服務異常?

(即不存在,它返回一個名字給學生的方法,但拋出一個錯誤,如果學生不能在數據庫中找不到?)

回答

1

例外是一等公民,並被稱爲 s。基本上,錯誤是您的操作可能返回的另一個消息 - 但具有不同的語義。通常,故障轉換爲端點接口中的強類型異常。

來自實例Web services hints and tips: Design reusable WSDL faults採取:

<message name="faultMsg"><part name="fault" element="tns:fault"/> 
<portType name="Interface"> 
    <operation name="op1"> 
     <input name="op1Request" message="tns:op1RequestMsg"/> 
     <output name="op1Response" message="tns:op1ResponseMsg"/> 
     <fault name="fault" message="tns:faultMsg"/> 
    </operation> 
</portType> 

如果從服務方法拋出異常suvh它被翻譯成<fault>消息,並再次引發對客戶端。如果您只是在服務器端丟棄任意消息,則將其視爲錯誤,並可能導致在客戶端有500個錯誤代碼。

+0

我是java web服務的新手。我使用Spring並且不寫任何wsdl模式,它是自動生成的。我可以在Java端做到嗎? – kamaci

+0

@karmaci:可以,[tag:jaxws]你可以用'@ WebFault'註釋你的異常。 –

+0

這裏有一些東西:http://stackoverflow.com/questions/2064447/jax-ws-map-exceptions-to-faults,但我不知道如何實現它。我需要一個簡單的基本示例。 – kamaci

相關問題