java.util.List एक इंटरफेस है, और जेएक्सबी इंटरफेस को संभाल नहीं सकता है


Answers

यदि यह आपके उद्देश्य के अनुरूप है तो आप हमेशा इस तरह की सरणी को परिभाषित कर सकते हैं:

YourType[]

जेएक्सबी निश्चित रूप से यह पता लगा सकता है कि वह क्या है और आप इसे तुरंत क्लाइंट पक्ष का उपयोग करने में सक्षम होना चाहिए। मैं आपको इस तरह से ऐसा करने की भी सिफारिश करता हूं, क्योंकि आपको किसी सूची से किसी सर्वर से पुनर्प्राप्त सरणी को संशोधित करने में सक्षम नहीं होना चाहिए, बल्कि वेब सेवा द्वारा प्रदान की गई विधियों के माध्यम से

Question

मुझे अपने आवेदन को तैनात करने का प्रयास करते समय निम्नलिखित अपवाद प्राप्त हुआ:

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of     IllegalAnnotationExceptions
java.util.List is an interface, and JAXB can't handle interfaces.
this problem is related to the following location:
    at java.util.List
    at private java.util.List     foobar.alkohol.register.webservice.jaxws.GetRelationsFromPersonResponse._return
    at     foobar.alkohol.register.webservice.jaxws.GetRelationsFromPersonResponse
java.util.List does not have a no-arg default constructor.
    this problem is related to the following location:
        at java.util.List
        at private java.util.List foobar.alkohol.register.webservice.jaxws.GetRelationsFromPersonResponse._return
    at     foobar.alkohol.register.webservice.jaxws.GetRelationsFromPersonResponse


मेरा कोड तब तक ठीक काम करता है जब तक कि मैंने वापसी सूची को सूची से सूची <सूची <रिलेशनशिप कैनोनिकल >> में बदल दिया

आंशिक webservice यहां है:


@Name("relationService")
@Stateless
@WebService(name = "RelationService", serviceName = "RelationService")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class RelationService implements RelationServiceLocal {

    private boolean login(String username, String password) {
        Identity.instance().setUsername(username);
        Identity.instance().setPassword(password);
        Identity.instance().login();
        return Identity.instance().isLoggedIn();
    }

    private boolean logout() {
        Identity.instance().logout();
        return !Identity.instance().isLoggedIn();
    }

    @WebMethod
    public List<List<RelationCanonical>> getRelationsFromPerson(@WebParam(name = "username")
    String username, @WebParam(name = "password")
    String password, @WebParam(name = "foedselsnummer")
    String... foedselsnummer) {

......
......
......
}


मैंने @SOAP बाइंडिंग को हटाने और डिफ़ॉल्ट रूप से प्रयास करके भी कोशिश की है, लेकिन एक ही परिणाम होता है। किसी भी मदद की सराहना करते हैं

अद्यतन करें

मैं कुछ नोट करना चाहता हूं। मैंने सभी सूची को ArrayList में बदल दिया, और फिर इसे संकलित किया। कारण मैं संकलित और काम नहीं करता क्योंकि यह अजीब व्यवहार करता है। मुझे प्रकार का ऑब्जेक्ट मिलता है: RelationServiceStub.ArrayList लेकिन ऑब्जेक्ट को कोई तरीका नहीं मिला है या किसी सूची के रूप में व्यवहार नहीं करता है। मैंने इसे एक सूची में डालने की भी कोशिश की लेकिन यह काम नहीं किया।

ध्यान दें कि यह एक्सिस 2 और wsdl2java का उपयोग करने के बाद है, तो हाँ, अब यह संकलित है, लेकिन मुझे नहीं पता कि डेटा कैसे प्राप्त किया जाए।




आप आंतरिक "सूची" के बजाय "ArrayList" का उपयोग कर सकते हैं




Links