2012-05-15 16 views
5

के साथ webservice जेनरेट करें मुझे wsimport के माध्यम से डब्लूएसडीएल से डब्ल्यूएस उत्पन्न करने में परेशानी हो रही है।डब्ल्यूएसडीएल से दस्तावेज़/शाब्दिक प्रारूप

डबल्यूएसडीएल TMDD v3.0 मानक विनिर्देश (WSDL और संबंधित XSD फ़ाइलों पाया जा सकता है here)

this article from IBM के अनुसार डबल्यूएसडीएल दस्तावेज़/शाब्दिक प्रारूप में हो रहा है है।

आदेश में डबल्यूएसडीएल संकलित करने के लिए मैं कुछ बाइंडिंग बनाया है/तोड़ मरोड़ लेकिन मैं इस त्रुटि पर अटक कर रहा हूँ (यह एक तरीका है के बाद से संचालन एक से अधिक हिस्सा है उत्पन्न नहीं करता है):

[WARNING] Ingoring operation "DlFullEventUpdateSubscription": more than one part 
bound to body 
    line 17 of file:/O:/temp/wsdltest/TMDD-stripped.wsdl 

करने के लिए आसान बनाने में, यह केवल दिलचस्प आपरेशन परिभाषा के साथ डबल्यूएसडीएल के नीचे छीन संस्करण है

<?xml version="1.0" encoding="UTF-8"?> 
<definitions xmlns:tns="http://www.tmdd.org/3/dialogs" 
    xmlns:tmdd="http://www.tmdd.org/3/messages" xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:c2c="http://www.ntcip.org/c2c-message-administration" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    name="TMDDCenterServices" targetNamespace="http://www.tmdd.org/3/dialogs"> 
    <documentation> 
    </documentation> 
    <types> 

     <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
      <xs:import namespace="http://www.tmdd.org/3/messages" 
       schemaLocation="TMDD.xsd" /> 
      <xs:import namespace="http://www.ntcip.org/c2c-message-administration" 
       schemaLocation="C2C.xsd" /> 
     </xs:schema> 
    </types> 
    <message name="MSG_EventSubscription"> 
     <part name="c2cMsgAdmin" element="c2c:c2cMessageSubscription" /> 
     <part name="message" element="tmdd:eventRequestMsg" /> 
    </message> 
    <!-- Common Messages --> 
    <message name="MSG_ConfirmationReceipt"> 
     <!-- CONNECTION MANAGEMENT Messages --> 
     <part name="message" element="c2c:c2cMessageReceipt" /> 
    </message> 
    <message name="MSG_ErrorReport"> 
     <part name="message" element="tmdd:errorReportMsg" /> 
    </message> 
    <!-- TMDD Owner Center Porttype --> 
    <portType name="tmddOCSoapHttpServicePortType"> 
     <operation name="DlFullEventUpdateSubscription"> 
      <documentation> 
       <objectClass>Event</objectClass> 
       <msgPattern>Sub</msgPattern> 
       <requirement>REQ1261</requirement> 
      </documentation> 
      <input message="tns:MSG_EventSubscription" /> 
      <output message="tns:MSG_ConfirmationReceipt" /> 
      <fault name="errorReport" message="tns:MSG_ErrorReport" /> 
     </operation> 
    </portType> 
    <!-- TMDD Owner Center binding --> 
    <binding name="tmddOCSoapHttpServiceBinding" type="tns:tmddOCSoapHttpServicePortType"> 
     <soap:binding style="document" 
      transport="http://schemas.xmlsoap.org/soap/http" /> 
     <operation name="DlFullEventUpdateSubscription"> 
      <soap:operation soapAction="' '" style="document" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <soap:body use="literal" /> 
      </output> 
      <fault name="errorReport"> 
       <soap:fault name="errorReport" use="literal" /> 
      </fault> 
     </operation> 
    </binding> 
    <!-- TMDD Owner Center Service --> 
    <service name="tmddOCSoapHttpService"> 
     <!-- ************************ --> 
     <!-- OWNER CENTER Services --> 
     <!-- ************************ --> 
     <port name="tmddOCSoapHttpServicePort" binding="tns:tmddOCSoapHttpServiceBinding"> 
      <soap:address location="http://tmdd.owner.center.com/c2cxml/" /> 
     </port> 
    </service> 
</definitions> 

बाइंडिंग फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?> 
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"> 
    <!-- To create standalone classes instead of nested classes --> 
    <!--<globalBindings localScoping="toplevel"/>--> 

    <!--*****************--> 
    <!-- Package Binding --> 
    <!--*****************--> 

    <!--*****************************--> 
    <!-- C2C classes package binding --> 
    <!--*****************************--> 
    <bindings schemaLocation="C2C.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model.ntcip.messageadministration" /> 
     </schemaBindings> 
    </bindings> 

    <!--**************************************--> 
    <!-- ITIS-Adopted classes package binding --> 
    <!--**************************************--> 
    <bindings schemaLocation="ITIS-Adopted-03-00-02.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model.itis.adopted" /> 
     </schemaBindings>  
    </bindings> 

    <!--************************************--> 
    <!-- ITIS-Local classes package binding --> 
    <!--************************************--> 
    <bindings schemaLocation="ITIS-Local-03-00-02.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model.itis.local" /> 
     </schemaBindings> 
    </bindings> 

    <!--**************************************--> 
    <!-- LRMS-Adopted classes package binding --> 
    <!--************************************* --> 
    <bindings schemaLocation="LRMS-Adopted-02-00-00.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model.lrms.adopted" /> 
     </schemaBindings>     
    </bindings> 

    <!--************************************--> 
    <!-- LRMS-Local classes package binding --> 
    <!--************************************--> 
    <bindings schemaLocation="LRMS-Local-02-00-00.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model.lrms.local" /> 
     </schemaBindings> 
    </bindings> 

    <!--*******************************--> 
    <!-- NTCIP classes package binding --> 
    <!--*******************************--> 
    <bindings schemaLocation="NTCIP-References.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model.ntcip.objectreferences" /> 
     </schemaBindings> 
    </bindings> 

    <!--******************************--> 
    <!-- TMDD classes package binding --> 
    <!--******************************--> 
    <bindings schemaLocation="TMDD.xsd"> 
     <schemaBindings> 
      <package name="tdf.tmdd.model" /> 
     </schemaBindings> 
    </bindings> 

    <!--***********************--> 
    <!-- Class personalization --> 
    <!--***********************--> 

    <!--************************************--> 
    <!-- LRMS-Adopted class personalization --> 
    <!--************************************--> 
    <bindings schemaLocation="LRMS-Adopted-02-00-00.xsd"> 
     <bindings node="//xs:complexType[@name='Chain']//xs:sequence//xs:element[@name='chain']//xs:complexType"> 
      <class name="ChainElement" /> 
     </bindings> 
     <bindings node="//xs:complexType[@name='GridPointPair']"> 
      <class name="GridPointPairAdopted" /> 
     </bindings>     
     <bindings node="//xs:complexType[@name='AreaLocation']"> 
      <class name="AreaLocationAdopted" /> 
     </bindings>  
     <bindings node="//xs:complexType[@name='LinkLocation']"> 
      <class name="LinkLocationAdopted" /> 
     </bindings> 
     <bindings node="//xs:complexType[@name='AdminAreaGroup']"> 
      <class name="AdminAreaGroupAdopted" /> 
     </bindings> 
     <bindings node="//xs:complexType[@name='GridPointSequence']"> 
      <class name="GridPointSequenceAdopted" /> 
     </bindings> 
     <bindings node="//xs:complexType[@name='Grid']"> 
      <class name="GridAdopted" /> 
     </bindings> 
     <bindings node="//xs:complexType[@name='NodeAttribute']"> 
      <class name="NodeAttributeAdopted" /> 
     </bindings> 
     <bindings node="//xs:complexType[@name='GridPoint']"> 
      <class name="GridPointAdopted" /> 
     </bindings>  
    </bindings> 

    <!--********************************--> 
    <!-- factory method personalization --> 
    <!--********************************--> 

    <!--*************************************--> 
    <!-- TMDD factory method personalization --> 
    <!--*************************************--> 
    <bindings schemaLocation="TMDD.xsd" > 
     <bindings node="//xs:complexType[@name='IntersectionSignalInventoryLinkList']"> 
      <factoryMethod name="createIntersectionSignalInventoryLinks" /> 
     </bindings> 
    </bindings> 
</bindings> 

wsimport आह्वान करने के लिए कमांड लाइन है निम्नलिखित:

O:\temp\wsdltest>wsimport -extension -Xdebug -s src -b bindings.xjb TMDD-stripped.wsdl 

करने के लिए "DlFullEventUpdateSubscription" आपरेशन सही तरीके से बनाए हो, तो मुझे क्या कर सकता है? जावा वेब सेवा उत्पन्न करने के लिए कोई विकल्प हैं? मैं ऑपरेशन परिभाषा को संशोधित नहीं कर सकता, क्योंकि यह मानक का पालन नहीं करेगा।

अद्यतन। समाधान

मैं इसे डबल्यूएसडीएल तो संदेश के प्रत्येक भाग में शीर्ष लेख और शरीर को सौंपा गया है संशोधित करके काम कर पाने में कामयाब रहे:

<binding name="tmddOCSoapHttpServiceBinding" type="tns:tmddOCSoapHttpServicePortType"> 
    <soap:binding style="document" 
     transport="http://schemas.xmlsoap.org/soap/http" /> 
    <operation name="DlFullEventUpdateSubscription"> 
     <soap:operation soapAction="' '" style="document" /> 
     <input> 
      <soap:header message="tns:MSG_EventSubscription" use="literal" part="c2cMsgAdmin"/> 
      <soap:body use="literal" parts="message"/> 
     </input> 
     <output> 
      <soap:body use="literal" /> 
     </output> 
     <fault name="errorReport"> 
      <soap:fault name="errorReport" use="literal" /> 
     </fault> 
    </operation> 
</binding> 

उत्तर

2

दस्तावेज़-शाब्दिक बहु-भाग संदेश संचालन नहीं हो सकता। आप नीचे विकल्पों का उपयोग कर सकते हैं।

  • दस्तावेज़/शाब्दिक लपेटा शैली का उपयोग करें - एक दस्तावेज़ में एकाधिक भागों को लपेटें।
  • उपयोग RPC/शाब्दिक शैली - साबुन शरीर में कई भागों बंधन पर कोई प्रतिबंध नहीं।

धन्यवाद, श्रीहरि।

+0

आप wsdl में उन विकल्पों में से किसी को कॉन्फ़िगर हैं? धन्यवाद –

+0

किसी अन्य तत्व में c2cMessage सदस्यता और eventRequestMsg रखें। ' \t ... \t ... ' तो MSG_EventSubscription का ही हिस्सा के रूप में "रूट" जोड़ें। – sreehari

संबंधित मुद्दे