2010-03-07 19 views
10

पर wsdl तक पहुंचने के लिए मेरे पास एक वेब सेवा है और मैं इसे ग्लासफ़िश पर तैनात कर रहा था। मैंने http://localhost:10697/APIService/APIServiceService?wsdl के माध्यम से अपने wsdl का उपयोग किया।टॉमकैट

अब मैंने WAR फ़ाइल को टॉमकैट 6.0.24 पर पोर्ट किया है और इसे तैनात किया गया है। हालांकि मैं http://localhost:8080/APIService/APIServiceService?wsdl का उपयोग कर अपने wsdl तक पहुंचने का प्रयास कर रहा हूं लेकिन मुझे 404 त्रुटि मिल रही है। मैंने विभिन्न संयोजनों की कोशिश की लेकिन कोई भी काम नहीं कर रहा था।

मैं wsdl फ़ाइल plz तक कैसे पहुंच सकता हूं?

धन्यवाद और सादर,

अद्यतन: यहाँ आप कर रहे हैं: web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

मैं नहीं मिल सकता है sun-jaxws.xml लेकिन ... धन्यवाद एक बहुत! सादर

उत्तर

20

डब्लूएसडीएल तक पहुंचने का तरीका वास्तव में कंटेनर विशिष्ट नहीं है, यह अधिक डब्ल्यूएस-स्टैक विशिष्ट है। ग्लासफ़िश में डब्ल्यूएस-स्टैक मेट्रो (मेट्रो = जेएक्स-डब्ल्यूएस आरआई + डब्लूएसआईटी) है। क्या आपने टॉमकैट पर मेट्रो या जेएक्स-डब्ल्यूएस आरआई स्थापित/तैनात किया था? चरणों के लिए Metro on Tomcat 6.x या Running JAX-WS Samples with Tomcat 6.x (JAX-WS RI आपके मामले में पर्याप्त हो सकता है) देखें।

अद्यतन: तो में sun-jaxws.xml (जिसे वेब-INF में पैक), आपके सेवा समाप्ति बिंदु इंटरफेस की घोषणा (एसईआई

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <listener> 
    <listener-class> 
    com.sun.xml.ws.transport.http.servlet.WSServletContextListener 
    </listener-class> 
    </listener> 
    <servlet> 
    <servlet-name>WebServicePort</servlet-name> 
    <servlet-class> 
    com.sun.xml.ws.transport.http.servlet.WSServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>WebServicePort</servlet-name> 
    <url-pattern>/services/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
    <session-timeout>60</session-timeout> 
    </session-config> 
</web-app> 

और: आप web.xml में WSServlet घोषित करने के लिए (Deploying Metro endpoint देखें) की आवश्यकता):

<?xml version="1.0" encoding="UTF-8"?> 
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> 
    <endpoint 
    name="MyHello" 
    implementation="hello.HelloImpl" 
    url-pattern="/hello" 
    /> 
</endpoints> 

और तुम पर डबल्यूएसडीएल का उपयोग:

http://localhost:8080/<mycontext>/services/hello?wsdl 
      A    B   C  D 
  • ए सर्वलेट कंटेनर का मेजबान और बंदरगाह है।
  • बी युद्ध फ़ाइल का नाम है।
  • सी web.xml फ़ाइल में यूआरएल-पैटर्न तत्व से आता है।
  • डी सूर्य-jaxws.xml फ़ाइल में url-pattern विशेषता के अंतिम स्टेम से आता है।
+0

हम्म ... इस बारे में नहीं पता था। श्रीमान मैं अभी भी एक छात्र हूँ। मैं टॉमकैट पर मेट्रो स्थापित करने की एक नज़र रखूंगा। अंतर्दृष्टि के लिए धन्यवाद! सम्मान, Krt_Malta –

+0

@Krt_Malta कोई समस्या नहीं। मैंने कुछ पॉइंटर्स जोड़े हैं कि यह कैसे करना है (मान लीजिए कि आप टोमकैट 6.x का उपयोग कर रहे हैं, जो मेरी सिफारिश होगी)। –

+0

हम्म ... कोई भाग्य नहीं। मैंने मेट्रो को http://blogs.oracle.com/arungupta/entry/metro_on_tomcat_6_x के अनुसार स्थापित किया, टॉमकैट को पुनरारंभ किया (जो कि टॉमकैट 6.0.24 है) और फिर से युद्ध फ़ाइल की प्रतिलिपि बनाई गई, लेकिन मुझे 404 त्रुटि मिलने तक wsdl फ़ाइल तक पहुंचने का प्रयास कर रहा है। कोई विचार कृपया? 10x। Krt_Malta –