Я использую весенние веб-сервисы для предоставления услуг в качестве веб-сервисов. я определил мой элемент ошибки Soap как этогоВесна, возвращающая пользовательские мыльные ошибки
<xsd:element name="systemFault">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="faultCode" type="xsd:string" nillable="true"/>
<xsd:element name="faultMessage" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
, и я использую это в моем WSDL
<wsdl:message name="msgSystemFault">
<wsdl:part name="body" element="cred:SystemFault"/>
</wsdl:message>
, а затем использовать это в операции
<wsdl:operation name="opMyOp">
<wsdl:documentation>
Creating an entity note.
</wsdl:documentation>
<wsdl:input message="tns:msgMyOpRequest"/>
<wsdl:output message="tns:msgMyOpResponse"/>
<wsdl:fault name="fault" message="tns:msgSystemFault"/>
</wsdl:operation>
Но когда я хочу бросить эту ошибку в моей конечной точке, как я могу это сделать?
Это, похоже, не относится к пользовательским ошибкам, а также к типичным ошибкам сервера. – skaffman
Почему? Или что вы подразумеваете под «пользовательской ошибкой»? Просто взгляните на источник SimpleSoapExceptionResolver и его суперклассы: https://fisheye.springsource.org/browse/spring-ws/trunk/core/src/main/java/org/springframework/ws/soap/server/endpoint /SimpleSoapExceptionResolver.java?hb=true - вы можете видеть, что в этом нет ничего волшебного, вы просто реализуете интерфейс EndpointExceptionResolver и создаете собственную собственную ошибку. SpringWS даже поставляется с несколькими абстрактными классами, которые помогают удалить довольно много шаблонов. –