2013-01-11 31 views
5

पर वेब सेवा सेवा एनोटेशन अपवाद मैं जेडीके 1.6.0_31-बी05 में जेडी डेवलपर 11 जी आर 2 (11.1.2.3.0) का उपयोग कर जेएक्स डब्ल्यूएस (2.1) वेबसाइट सेवा को चलाने का प्रयास कर रहा हूं। कक्षा में मौजूद @WebService एनोटेशन से त्रुटि आ रही है।
जब मैं आवेदन चला रहा हूँ, मैं, त्रुटि नीचे हो रही हैवेबब्लिक

java.lang.IllegalArgumentException: Argument(s) "type" can't be null. 
    at com.sun.xml.bind.api.TypeReference.<init>(TypeReference.java:89) 
    at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:758) 
    at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:678) 
    at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:428) 
    at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:277) 
    at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:363) 
    at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:202) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:496) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:539) 
    at weblogic.wsee.jaxws.JAXWSDeployedServlet.getEndpoint(JAXWSDeployedServlet.java:183) 

ऐसा नहीं है कि एम्बेडेड वेब तर्क आंतरिक पुस्तकालयों उपयोग कर रहा है के बजाय JDK से एक प्रदान की है। जेडीके आरटी.जर में कक्षा RuntimeModeler या TypeReference मौजूद हैं पैकेज com.sun.xml.ws.internal के साथ शुरू होता है। Weblogic इन वर्गों को glassfish.jaxb_1.0.0.0_2-1-12.jar & glassfish.jaxws.rt_1.2.0.0_2-1-5.jar से चुन रहा है, लेकिन ये जार मेरे आवेदन का हिस्सा नहीं हैं।

  1. मैं पहले से ही टैग नीचे के साथ weblogic.xml का इस्तेमाल किया है,

    <prefer-web-inf-classes>true</prefer-web-inf-classes> 
    
  2. मैं DefaultDomain/lib निर्देशिका में jaxws-api.jar & JWs-api.jar जोड़ने की कोशिश की, लेकिन वह didn ' काम नहीं

कोई सुराग कैसे इस अपवाद को हल करने के लिए या कैसे JDK क्रम वर्गों का उपयोग करने के weblogic मजबूर करने के लिए? एक ही आवेदन स्टैंड अकेले वेबलॉग पर काम करता है।

+0

क्या आपको कभी इसका जवाब मिला? – Nick

उत्तर

0

क्या आपने मेनिफेस्ट क्लास-पथ में सही जार सूचीबद्ध करने का प्रयास किया है: विशेषता? आप ऐप में जेडीके कक्षाएं भी डाल सकते हैं और फ़िल्टरिंग क्लासलोडर का उपयोग करके यह निर्दिष्ट करने के लिए सिस्टम क्लासलोडर की बजाय ऐप से कौन से वर्गों का उपयोग करना है।

http://docs.oracle.com/cd/E15051_01/wls/docs103/programming/classloading.html#wp1097263

1

मैं एक ही समस्या थी और जवाब मिला: http://www.intropro.com/resources/blog/66-argument-s-type-can-t-be-null

संक्षेप में - समस्या दिखाई देती है क्योंकि आप JAXB-impl है आप क्लासपाथ में जो WebLogics खुद JAXB ओवरराइड करता है, आप स्पष्ट रूप से नहीं हो सकता इस निर्भरता को अपने pom.xml से देखें, लेकिन आपकी कुछ अन्य निर्भरताएं करते हैं। मेरे मामले में मेरे पास अपाचे-सीएक्सएफ मेवेन निर्भरता के रूप में था और इसमें जैक्सब 2.1.13 था जो "संकलन" के साथ उप-निर्भरता के रूप में था। मुझे बस इतना करना था कि यह जैक्सब को अपनाने और वेबलॉगिक्स जैक्सबी का स्पष्ट रूप से उपयोग करने के लिए "प्रदान" के दायरे के साथ अपनी निर्भरता जोड़ें।

pom.xml में इसे इस तरह देखा:

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-frontend-jaxws</artifactId> 
    <version>2.7.2</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>jaxb-impl</artifactId> 
      <groupId>com.sun.xml.bind</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <scope>provided</scope> 
    <version>2.1.13</version> 
</dependency> 

आप ग्रहणों "निर्भरता पदानुक्रम" pom.xml ध्यान में रखते हुए टैब का उपयोग करें या बस कमांड लाइन कर सकते हैं "mvn निर्भरता: पेड़" कैसे पता लगाने के लिए jaxb- इंपोर्ट ने इसे आपके क्लासपाथ में बनाया।

0

मेरे मामले में, मेरे पास ऑपरेशन के तर्कों में एक टाइपो था, जहां दो तर्कों का एक ही वेबपाराम नाम था। संशोधित और तैनात, समस्या हल हो गई थी।