2011-04-08 13 views
5

के दौरान जैक्सबी बाइंडिंग का उपयोग कर XmlType.namespace को प्रतिस्थापित करना मेरा वेब-सेवा एप्लिकेशन एक्सिस से जेएक्स-डब्लूएस तक जा रहा है और मुझे कुछ रूपांतरण करने में परेशानी हो रही है। मेरा प्राथमिक मुद्दा यह है कि मेरे पास कई एक्सएसडी हैं जो एक ही प्रकार के साथ थोड़ा अलग परिभाषित हैं, लेकिन समान नामों के साथ। मेरे wsimport के दौरान मैं संकुल को हल करने के लिए बाहरी JAXB बाइंडिंग फ़ाइल का उपयोग करने में सक्षम हूं, लेकिन जेनरेट की गई कक्षाएं अभी भी एक ही @XmlType एनोटेशन के साथ समाप्त होती हैं।टाइप पीढ़ी

V1:

package com.service.v1.bill.request; 
@XmlType(name = "FileBillReqType", namespace = "http://epayments.metavante.com/types/bill/request"}) 
public class FileBillReqType extends AbstractContextMethodRequest... 

संस्करण 2:

package com.service.v2.bill.request; 
@XmlType(name = "FileBillReqType", namespace = "http://epayments.metavante.com/types/bill/request"}) 
public class FileBillReqType extends AbstractContextMethodRequest... 

बाइंडिंग:

<jaxb:bindings schemaLocation="file:../wsdl/v1/bill/BillRequest.xsd" 
    node="/xs:schema[@targetNamespace='http://service.example.com/bill/request']"> 
    <jaxb:schemaBindings> 
     <jaxb:package name="com.service.v1.bill.request" /> 
    </jaxb:schemaBindings> 
</jaxb:bindings> 

पहले यह धुरी द्वारा प्रदान प्रकार मैपिंग (जिसे हम मुश्किल में कोडित के साथ हल हो गया होता एक बड़े पैमाने पर बदसूरत wsdd):

<service name="v1" provider="java:RPC" style="document" use="literal">... 
<typeMapping 
    xmlns:ns="http://service.example.com/bill/request" 
    qname="ns:FileBillReqType" 
    type="java:com.service.v1.bill.request.FileBillReqType" 
    serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
    deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
    encodingStyle="" 
    />... 

क्या मेरे जेनरेट किए गए जेएक्सबी ऑब्जेक्ट्स को मैन्युअल रूप से जेनरेट की गई फ़ाइलों को मैन्युअल रूप से संशोधित किए बिना कस्टम नेमस्पेस प्राप्त करने के लिए वैसे भी है जब भी मैं उन्हें पुन: उत्पन्न करता हूं (सैकड़ों हैं)?

+0

वही समस्या यहां ... –

उत्तर

1

wsimport का उपयोग करते हुए क्लाइंट क्लासेस उत्पन्न करते समय v2 के साथ स्कीमा स्थान के रूप में एक और xjb अनुकूलन निर्दिष्ट करना समस्या हल कर सकता है।

<jaxb:bindings schemaLocation="file:../wsdl/v2/bill/BillRequest.xsd" 
node="/xs:schema[@targetNamespace='http://service.example.com/bill/request']"> 
    <jaxb:schemaBindings> 
     <jaxb:package name="com.service.v2.bill.request" /> 
    </jaxb:schemaBindings> 
</jaxb:bindings> 
संबंधित मुद्दे