使用 Gradle 生成 jax-ws java 源

发布于 2024-12-20 10:53:04 字数 148 浏览 0 评论 0原文

我有一个 wsdl,我想使用 IBM Websphere 版本的 wsimport 从它生成 jax-ws 类型的 Java 源代码。我怎样才能以简单的方式做到这一点? wsimport.bat 引用 com.ibm.ws.jaxws.tools.WsImport 来进行代码生成。

I have a wsdl and I'd like to generate jax-ws type Java source from it using IBM Websphere version of wsimport. How can I do this in an easy way? wsimport.bat references com.ibm.ws.jaxws.tools.WsImport to do the code generation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

长伴 2024-12-27 10:53:04

我通过直接调用 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]    
} 

I solved the problem by calling wsimport directly. Just make sure websphereHome is set to the websphere home folder on your machine. Then genDir is the folder where you want the files to be generated to. Finally, wsdlFile is the path to the wsdl used for generation.

task generateWSDL2Java(type:Exec) { 

    doFirst{
        genDir.mkdirs()
    }
    cmd = websphereHome + '/bin/wsimport.bat -keep -d  '+genDir+' '+wsdlFile    
    commandLine = ['cmd', '/K', cmd]    
} 
银河中√捞星星 2024-12-27 10:53:04

这是一个简单的 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,则这里是 信息中心文章描述了如何使用其中的 JAX-WS Ant 任务。我不确定其他 WebSphere 开发环境相比如何。

Here's a simple Ant script, using a WebSphere 6.1 runtime (with the WebSphere Feature Pack, which is required for JAX-WS), which I just tested:

<?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>

If you have RAD 8, here's the InfoCenter article which describes using the JAX-WS Ant tasks from within that. I'm not sure how other WebSphere development environments compare.

青萝楚歌 2024-12-27 10:53:04

JAX-WS 工件是可移植的,这意味着您不需要使用 IBM 的工具。顺便说一句,我认为 WAS 附带的 wsgen 和 wsimport 工具实际上使用来自 Sun/Oracle 参考实现的代码。

因此,您可以使用任何记录在案的 Gradle 解决方案,即使它不是特定于 WebSphere 的。

JAX-WS artifacts are portable, which means that you are not required to use IBM's tools. BTW, I think that the wsgen and wsimport tools shipped with WAS actually use code from the Sun/Oracle reference implementation.

Therefore you could use any documented solution for Gradle, even if it is not WebSphere specific.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文