2013-08-19 4 views
7

से क्लाइंट जार उत्पन्न करना मैं कुछ एसओएपी वेब सेवा के साथ बातचीत करने की कोशिश कर रहा हूं जिसमें बुनियादी प्रमाणीकरण है और मेरे पास यूआरएल, उपयोगकर्ता नाम और पासवर्ड है। अब मैं अपने जावा कोड में इस वेब सेवा का उपयोग करना चाहता हूं और इसलिए मुझे इसके लिए एक जार फ़ाइल बनाना होगा।एसओएपी wsdl

मैंने नीचे दिए गए यूआरएल देखे हैं लेकिन यह सुनिश्चित नहीं है कि मैंने सही तरीके से इसका पालन किया है या नहीं। http://axis.apache.org/axis2/java/core/docs/userguide-creatingclients.html#choosingclient http://javasourcecodeetc.blogspot.com/2011/07/convert-wsdl-to-java-for-calling-soap.html

मैं धुरी से 2-1.6.2 डाउनलोड किया है http://axis.apache.org/axis2/java/core/download.cgi (केवल बाइनरी वितरण)

मैं ग्राहक ठूंठ जो दिया गया था है ... मैं लोगों को निर्माण के साथ इसका इस्तेमाल करने की यह कहते हुए देखते हैं। एक्सएमएल, लेकिन मुझे कहीं भी build.xml नहीं मिल सका .... कृपया मुझे बताएं कि मुझे अपाचे अक्ष और चींटी सेट अप करने के लिए क्या इंस्टॉल करना है? चींटी यहाँ क्या कर रही है?

उत्तर

7

एक्सिस 2 वेब सेवा क्लाइंट का समर्थन करने के कई तरीकों का समर्थन करता है। सबसे आम दृष्टिकोण here दस्तावेज किया गया है और इसमें जावा कोड उत्पन्न करना शामिल है जो डब्लूएसडीएल फ़ाइल द्वारा वर्णित एसओएपी संदेश को पार्स करता है।

निम्नलिखित उत्तर वेब सेवा को आमंत्रित करने के कई तरीकों का वर्णन करता है।

अधिक विस्तार

wsdl2java कार्यक्रम (Axis2 के साथ बंडल) एक चींटी उत्पन्न करेगा: अंतिम भाग एक ग्रूवी स्क्रिप्ट Axis2 द्वारा उत्पन्न और संकलित कक्षाओं का उपयोग करता है चींटी का उपयोग कर का वर्णन करता है निर्दिष्ट डब्लूएसडीएल फ़ाइल के आधार पर परियोजना:

$AXIS2_HOME/bin/wsdl2java.sh -d adb -s -o mydir -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL 

यह निम्न फ़ाइलों को उत्पन्न करेगा:

└── mydir 
    ├── build.xml 
    └── src 
     └── com 
      └── xmlme 
       └── webservices 
        └── ShakespeareStub.java 

क्या आप जावा वर्गों कि XML स्कीमा प्रकार WSDL फ़ाइल में परिभाषित से मेल पता चल जाएगा उत्पन्न जावा कोड की जाँच करते हैं, यह सरल क्रमानुसार और SOAP संदेश deserialize करने के लिए बना रही है।

"build.xml" फ़ाइल में तर्क शामिल है जो जेनरेट किए गए जावा कोड को संकलित करेगा।

cd mydir 
ant 

निर्माण चलता है यह डिफ़ॉल्ट रूप से इस प्रकार जार फ़ाइल बनाने जाएगा: (other answer में या मेरे उदाहरण देख ग्रूवी स्क्रिप्ट)

└── mydir 
    ├── build 
    │   ├── classes 
    │   │   └── .. 
    │   │    .. 
    │   └── lib 
    │    └── Shakespeare-test-client.jar 
    ├── build.xml 
    └── src 
     └── com 
      └── xmlme 
       └── webservices 
        └── ShakespeareStub.java 

यह जार फ़ाइल अब एक जावा से शामिल किया जा सकता है कि webservice तक पहुंचने की इच्छा है।

9

मार्क का जवाब काम करता है, लेकिन मैं एक Maven पुरुष के और अधिक कर रहा हूँ और अंत में उत्पादन जार mavenize करना चाहते हैं।

यहाँ कैसे Maven के साथ यह करने के लिए है।

  1. किसी निर्देशिका में WSDL डाउनलोड करें (उदा। mydir/MyWsdl.wsdl)।
  2. pom.xml फ़ाइल बनाएं (जैसा कि नीचे दिखाया गया है)।
  3. रन mvn package

यहाँ तुम क्या

└── mydir 
    ├── MyWsdl.wsdl 
    ├── pom.xml 
    └── target (add this dir to .gitignore) 
     ├── generated-sources 
     ├── mywsdl-0.1.0-SNAPSHOT.jar 
     ├── mywsdl-0.1.0-SNAPSHOT-sources.jar 
     └── mywsdl-0.1.0-SNAPSHOT-javadoc.jar 

और pom.xml फ़ाइल के स्रोत

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>mywsdl</artifactId> 
    <version>0.1.0-SNAPSHOT</version> 
    <name>My WSDL client</name> 
    <build> 
    <plugins> 
     <!-- Generates JAVA source files from the WSDL --> 
     <plugin> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
     <version>1.6.2</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>wsdl2code</goal> 
      </goals> 
      <configuration> 
       <packageName>com.example</packageName> 
       <wsdlFile>MyWsdl.wsdl</wsdlFile> 
       <!-- TODO: Update this file with new WSDL versions --> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-source-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>attach-javadocs</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-adb</artifactId> 
     <version>1.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-api</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-impl</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    </dependencies> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
</project> 
+0

मैं संपादित नहीं कर सकते क्योंकि यह कम से कम 6 अक्षर होगा, लेकिन अंत करेंगे वहाँ pom.xml की पहली पंक्ति में एक लापता एक्स है: "x" mlns: xsi = "http: //www.w3 ..... –