2014-02-14 2 views
2

Я только что успешно использовал плагин wsimport/xjc с именем xew с maven, используя сообщение this.плагины командной строки wsimport/xjc

Использование Maven для этого в моей компании в настоящее время не является вариантом, поэтому я пытаюсь использовать утилиту wsimport из Java 7 SDK.

Как сообщить wsimport о включении плагина xew xjc при импорте моего WSDL?

Моя текущая командная строка:

wsimport -Xdebug -s src\main\java -d target\classes -extension -B-extension -B-classpath target\dependency\*:. -B-Xxew:instantiate lazy -B-Xxew:delete src\main\java\test.wsdl 

Он не будет есть параметры -B, хотя еще: no such JAXB option: -Xxew. Плагин xew и jaxb-xjc.jar находятся в рабочем каталоге и в системе CLASSPATH.

ответ

1

Я пошел и использовал Ant для преобразования моего WSDL в код. Для этого я загрузил jaxws-ri версию 2.2.8 и придумал следующий скрипт Ant, который работает. Теперь я могу использовать maven-antrun-plugin для вызова сценария.

<project> 

    <property name="jaxws.home" location="lib/jaxws-ri" /> 

    <path id="jaxws.classpath"> 
     <fileset dir="${jaxws.home}/lib" includes="jaxws-tools.jar" /> 
    </path> 

    <taskdef classpathref="jaxws.classpath" name="wsimport" classname="com.sun.tools.ws.ant.WsImport" /> 

    <wsimport keep="true" sourcedestdir="src/main/java" destdir="target/classes" extension="true" wsdl="src/main/java/test.wsdl"> 
     <xjcarg value="-cp" /> 
     <xjcarg file="lib/commons-logging-api-1.1.jar" /> 
     <xjcarg value="-cp" /> 
     <xjcarg file="lib/jaxb-xew-plugin-1.1.jar" /> 
     <xjcarg value="-Xxew" /> 
     <xjcarg value="-Xxew:instantiate lazy"/> 
     <xjcarg value="-Xxew:delete"/> 
    </wsimport> 

</project> 
+0

У меня так много вопросов! Какую команду вы выполняете? муравей? Где был создан этот файл? Как называется этот файл? Как вы передали его муравьям? Какие все JAR-ы вы загрузили в свою папку lib /? – pathikrit

+0

Это основные вопросы Ant. Я рекомендую прочитать про Ant. – Dormouse