मैं वेब सेवा का पर्दाफाश करने के लिए जेएक्स डब्ल्यूएस का उपयोग कर रहा हूं। इस सेवा के कुछ संचालन अपवाद उत्पन्न कर सकते हैं। आंतरिक सर्वर अपवाद नहीं, बल्कि अपवाद जो ऑपरेशन आमंत्रण के इनपुट तर्कों पर निर्भर हैं।जेएक्स-डब्ल्यूएस - दोषों के लिए मानचित्र अपवाद
तो मुझे लगता है कि मेरी आपरेशन एक कस्टम अपवाद है, तो जैसे फेंकता निर्दिष्ट करें:
@WebService
@SOAPBinding(style = Style.RPC, use = Use.LITERAL)
public class MyServiceEndpointImpl implements MyServiceEndpoint {
@WebMethod
public void throwsException throws InvalidInputException;
}
मैं निम्नलिखित स्टैकट्रेस अंत एप्लिकेशन चलते समय:
com.sun.xml.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.mypackage.ws.services.jaxws.InvalidInputExceptionBean is not found. Have you run APT to generate them?
at com.sun.xml.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:285)
at com.sun.xml.ws.model.RuntimeModeler.processExceptions(RuntimeModeler.java:1006)
at com.sun.xml.ws.model.RuntimeModeler.processRpcMethod(RuntimeModeler.java:969)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:546)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:370)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:256)
at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:322)
at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:188)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467)
at org.jvnet.jax_ws_commons.spring.SpringService.getObject(SpringService.java:333)
at org.jvnet.jax_ws_commons.spring.SpringService.getObject(SpringService.java:45)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:121)
जोड़ना @XmlRootEntity
InvalidInputException
के लिए नहीं करता है समस्या का समाधान।
यदि वेब सेवाओं पर दोषों की रिपोर्ट करने का यह अनुशंसित तरीका नहीं है, तो क्या कोई बेहतर तरीका है? क्या मेरे अपवाद RuntimeException
से प्राप्त हो सकते हैं और त्रुटि प्रबंधन के लिए परिवहन पर भरोसा करते हैं (यानी, सब कुछ एक SOAPException में लपेटा जाएगा)? मैं स्प्रिंग-डब्ल्यूएस 'SoapFaultAnnotationExceptionResolver
जैसे कुछ की उम्मीद कर रहा था। क्या जैक्स-डब्ल्यूएस के लिए उपलब्ध कुछ समान है?
शायद मुझे यह ध्यान रखना चाहिए कि जिस वर्ग में यह गायब है, com.mypackage.ws.services.jaxws.InvalidInputExceptionBean, वास्तव में मौजूद नहीं है। लेकिन मुझे लगता है कि यह स्वाभाविक था, कि इसे अपवाद राज्यों की तरह उत्पन्न किया जाना चाहिए। – waxwing