2014-09-17 2 views
1

У меня есть wsdl, что я генерирую классы из wsimport.JAXB файлы привязки wsimport это возможно (реализует интерфейс). Сказал это

У меня есть потребность в некоторых классах для реализации интерфейса, который определен в другой структуре.

Я сказал разработчику Java, что это возможно с использованием параметра wsimport. Я предполагаю, что это опция -b.

Не удалось найти документацию о том, как создать файл привязки, чтобы делать то, что мне нужно. Все примеры показывают, как изменить имя пакета.

Ниже приведен пример того, что мне нужно

Пример WSDL

<xsd:complexType name="GetAandBRequest"> 
<xsd:sequence> 
    <xsd:element name="A" type="xsd:int" /> 
    <xsd:element name="B" type="xsd:int" /> 
    </xsd:sequence> 
</xsd:complexType> 

WSImport генерирует

public class GetAandBRequest { 
    protected int a; 
    protected int b; 

    public int getA() { 
     return a; 
    } 
    public void setA(int value) { 
     this.a = value; 
    } 
    public int getB() { 
     return storeNum; 
    } 
    public void setB(int value) { 
     this.b = value; 
    } 
    } 

Что мне нужно от wsimport является:

public class GetAandBRequest implements IMessage { 
    protected int a; 
    protected int b; 

    public int getA() { 
     return a; 
    } 
    public void setA(int value) { 
     this.a = value; 
    } 
    public int getB() { 
     return storeNum; 
    } 
    public void setB(int value) { 
     this.b = value; 
    } 
} 

Обратите внимание на реали IMessage.

Возможно ли это с помощью wsimport? Если не возможно, как обойти что-то подобное. Есть много сообщений. Я не хочу, чтобы вручную добавлять инструменты IMessage каждый раз, когда мне нужно восстановить wsdl и схемы.

Большое спасибо заранее ...

+0

какие рамки/выполнения вы используете? –

+0

Использование сервера приложений jdk 1.7 - websphere. IMessage определяется во внешней банке, которая была создана в доме. – John

+0

, так что происходит, если сложный тип изменяется и имеет C, но вы забываете обновить интерфейс? –

ответ

0

варианты XJC могут быть переданы wsimport

Google XJC наследство или jaxb2 наследство

<jaxb:bindings version="1.0" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance" 
jaxb:extensionBindingPrefixes="inheritance"> 

<jaxb:bindings schemaLocation="customer.xsd" node="/xsd:schema"> 
    <jaxb:bindings node="xsd:complexType[@name='customer']"> 
     <inheritance:implements>com.acme.foo.Actor</inheritance:implements> 
    </jaxb:bindings> 
</jaxb:bindings> 

См

http://confluence.highsource.org/display/J2B/Using+JAXB2+Basics+Plugins+with+CXF

http://confluence.highsource.org/display/J2B/JAXB2+Basics+Plugins

http://www.javaworld.com/article/2074330/core-java/adding-common-methods-to-jaxb-generated-java-classes--jaxb2-basics-plugins-.html

+0

Я проверю это ... Спасибо – John

+0

wsimport использует другой формат привязки, который не имеет 'extensionBindingPrefixes' http://stackoverflow.com/q/39640430/476716 – OrangeDog

+0

@John: Вы не получили этого работали ли вы? – OrangeDog

 Смежные вопросы

  • Нет связанных вопросов^_^