Использование Gradle для генерации jax-ws java-источников - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть wsdl, и я хотел бы сгенерировать из него источник Java типа jax-ws, используя версию wsimport IBM Websphere. Как я могу сделать это простым способом? wsimport.bat ссылается на com.ibm.ws.jaxws.tools.WsImport для генерации кода.

Ответы [ 3 ]

1 голос
/ 16 декабря 2011

Я решил проблему, вызвав wsimport напрямую.Просто убедитесь, что websphereHome установлен в домашнюю папку websphere на вашем компьютере.Тогда genDir - это папка, в которую вы хотите сгенерировать файлы.Наконец, wsdlFile - это путь к wsdl, используемому для генерации.

task generateWSDL2Java(type:Exec) { 

    doFirst{
        genDir.mkdirs()
    }
    cmd = websphereHome + '/bin/wsimport.bat -keep -d  '+genDir+' '+wsdlFile    
    commandLine = ['cmd', '/K', cmd]    
} 
0 голосов
/ 11 декабря 2011

Артефакты JAX-WS являются переносимыми, что означает, что вам не нужно использовать инструменты IBM. Кстати, я думаю, что инструменты wsgen и wsimport, поставляемые с WAS, на самом деле используют код из эталонной реализации Sun / Oracle.

Поэтому вы можете использовать любое документированное решение для Gradle, даже если оно не относится к WebSphere.

0 голосов
/ 08 декабря 2011

Вот простой Ant-скрипт, использующий среду выполнения WebSphere 6.1 (с WebSphere Feature Pack, которая требуется для JAX-WS), которую я только что протестировал:

<?xml version="1.0" encoding="UTF-8"?>
<project name="JAX-WS Client">
    <property name="was.dir" value="C:\Program Files (x86)\IBM\WebSphere\AppServer"/>

    <path id="jaxws.gen.classpath">
        <fileset dir="${was.dir}/plugins">
            <include name="*com.ibm.wsfp.main_6.1.0.jar" />
            <include name="*org.apache.axis2_6.1.0.jar" />
            <include name="*com.ibm.jaxws.tools_6.1.0.jar" />
            <include name="*com.ibm.jaxb.tools_6.1.0.jar" />
        </fileset>
        <fileset file="${was.dir}/lib/j2ee.jar"/>
    </path>

    <!-- Ant task definition for wsimport -->
    <taskdef classpathref="jaxws.gen.classpath" name="wsimport" classname="com.sun.tools.ws.ant.WsImport"/>

    <target name="wsimport">
        <wsimport sourcedestdir="./src" destdir="./build" debug="true" verbose="true"
                  keep="true" wsdl="${wsdlFile}" />
    </target>
</project>

Если у вас есть RAD 8, вот статья InfoCenter, в которой описывается использование задач JAX-WS Ant изнутри. Я не уверен в сравнении других сред разработки WebSphere.

...