2012-05-28 46 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

相关问题