当前位置: 首页 > 知识库问答 >
问题:

在没有eclipse的情况下通过ant生成webservice

单于智
2023-03-14

我正在尝试使用ant从现有代码到war文件生成web服务。Eclipse生成一个完整的ant构建文件(axis_bujava.xml ),它可以工作(但是undeploy.wsdd并不是一直生成的,我不知道为什么),但前提是我从eclipse运行它。

我想有一个独立的脚本来生成我的网络服务(并将其打包到warfile后,但这不是问题^^)

我从eclipse插件文件夹中添加了一些jar到类路径并创建了任务“wsgen”,但没有我得到一个“空指针异常”。

我的axis_bujava。xml:

<?xml version="1.0"?>

<project default="main" basedir=".">

<echo message="pulling in property files"/>
<property file="axis_bujava.properties"/>



<path id="wsgenlib">
      <fileset dir="${ant.library.dir}/org.eclipse.wst.command.env/" includes="ant-lib/anttasks.jar"/>
</path>

<taskdef name="wsgen"
         classname="ws.ant.task.WebServiceGenerationAntTask"
         classpath="${ant.library.dir}/org.eclipse.wst.command.env"
         />

<echo message="calling the web services generation ant task: axis_bujava"/>
 <target name="main" >

     <wsgen />
  </target>

</project>

错误:

d:\ Dev \ S _ Demo \ ant \ axis _ bu Java . XML:22:Java . lang . nullpointerexception at org . eclipse . wst . command . internal . env . context . persistentcontext .(Java:31)at org . eclipse . wst . command . internal . env . context . env . context . context . persistentresourcecontext .(persistentresourcecontext . Java:36)at org . eclipse . wst . command . internal . env . context . persistentresourcecontext . get instance(persistentresourcecontext . Java:2

总时间:0秒

共有1个答案

方博
2023-03-14

正如我在评论中所说,我通过直接使用Axis类(就像eclipse那样)解决了这个问题:

重要提示: 使用的蚂蚁版本 :

Apache Ant(TM)版本1.9.2于2013年7月8日编译

第一,依赖关系(最小列表,在执行时将它们添加到ant类路径):

  • axis.jar
  • axis-ant.jar

第二,Ant build.xml:

从axis-ant.jar获取任务

<taskdef 
        resource="axis-tasks.properties"
/>

在目标中:

  1. 生成 wsdl 文件

注意:如果不起作用,使用org.apache.axis.wsdl.Java2WSDL,类似于下一点,并且都有一个"-h "选项来帮助

<axis-java2wsdl
        output="WebContent/WEB-INF/NameOf.wsdl"
        namespace="http://org.acme.com"
        style="WRAPPED"
        location="http://localhost/MyService/service/MyServiceImpl"
        classname="com.acme.org.MyServiceImpl"
        classpath="build/classes"
    /> 

直接使用“java”,因为在我的例子中,axis ant的ant任务不起作用。和exec任务,我对java任务有一些问题(ant版本的原因)

<exec executable="java">
    <arg value="-cp" />
    <arg value="${path.dependencies}/*;build/classes" />
    <arg value="org.apache.axis.wsdl.WSDL2Java" />
    <arg value="-d"/>
    <arg value="Application"/>
    <arg value="-o"/>
    <arg value="WebContent/WEB-INF/MyServiceImplService/"/>
    <arg value="-p"/>
    <arg value="com.acme.org"/>
    <arg value="-c"/>
    <arg value="com.acme.org.MyServiceImpl"/>
    <arg value="-s"/>
    <arg value="WebContent/WEB-INF/NameOf.wsdl"/>
</exec>

Generate server-config.wsdd

<exec executable="java">
    <arg value="-cp" />
    <arg value="${path.dependencies}/*" />
    <arg value="org.apache.axis.utils.Admin" />
    <arg value="server"/>
    <arg value="WebContent/WEB-INF/MyServiceImplService/com.acme.org/deploy.wsdd"/>
</exec>
<move file="server-config.wsdd" tofile="WebContent/WEB-INF/server-config.wsdd"/>

清理生成的jar文件

<delete>
    <fileset dir="WebContent/WEB-INF/MyServiceImplService/com.acme.org/" includes="*.java" />
</delete>
 类似资料:
  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?

  • 问题内容: 示例问题: 实体: 用户包含姓名和朋友列表(用户参考) 博客文章包含标题,内容,日期和作者(用户) 需求: 我想要一个显示标题的页面以及指向用户朋友的最近10篇博客的链接。我还希望能够通过较旧的条目继续进行分页。 SQL解决方案: 因此在sql land中,它将类似于: 我能想到的GAE解决方案是: 加载用户,循环浏览好友列表并加载其最新博客帖子。最后合并所有博客文章以查找最新的10个

  • 我目前正在使用openapi生成器maven插件生成一个模型,但当该模型创建BigDecimal属性时,它没有添加正确的导入。例如: 当我手动添加导入时,模型编译成功,但我认为它会生成。 我尝试在配置部分添加导入映射,如下所示: 正如这里所建议的那样。 还尝试了以下方法: 但行为是一样的。 我正在使用openapi生成器版本5.0.0。我目前的配置是这样的:

  • 我有一个liqubase changelog.xml。它包含几个带有更改的“包含文件”。例如,创建一个表的基脚本和向该表添加一个新字段的另一个基脚本。 我能用一个“创建表...”得到SQL脚本吗语句,该语句包括所有字段。而且我不想连接到DB。只需使用liquibase xml文件和jar库即可。 但all.sql只包含第一个包含文件(base.sql)中的sql 谢谢

  • return在没有强制转换的情况下从整数创建指针->return*b; 赋值从没有强制转换的指针生成整数->**trans_matrix=转置(矩阵[0],trans_matrix[0],r,c);警告。 如何修复代码未显示警告?

  • 问题内容: 构建通知时,如何发出没有声音的通知?我正在构建通知,我的用户不喜欢它发出声音的事实。 如何将其更改为无声/无声? 我如何显示通知: 我尝试在Google上进行搜索,但我得到的唯一结果是如何播放声音,而不是不播放声音… 编辑 在某些人看来,它可能是重复的,但是在我的我无法找到指定默认值的替代方法,而此新方法称为setDefaults 问题答案: 删除的行。它不会播放声音,但是如果需要,您