我正在尝试使用ant从现有代码到war文件生成Web服务。 Eclipse生成了一个完整的ant生成文件(axis_bujava.xml),该文件可以工作(但并非始终生成undeploy.wsdd,我不知道为什么),但是仅当我从eclipse运行它时才如此。
我想要一个独立的脚本来生成我的Web服务(并将其打包到warfile中,但这不是问题^^)
我从eclipse plugins文件夹中添加了一些jar文件到类路径中,并创建了任务" wsgen",但没有得到"空指针异常"。
我的axis_bujava.xml:
classname="ws.ant.task.WebServiceGenerationAntTask"
classpath="${ant.library.dir}/org.eclipse.wst.command.env"
/>
错误 :
D:\Dev\S_Demo\ant\axis_bujava.xml:22: java.lang.NullPointerException
at org.eclipse.wst.command.internal.env.context.PersistentContext.(PersistentContext.java:31)
at org.eclipse.wst.command.internal.env.context.PersistentResourceContext.(PersistentResourceContext.java:36)
at org.eclipse.wst.command.internal.env.context.PersistentResourceContext.getInstance(PersistentResourceContext.java:27)
at org.eclipse.wst.command.internal.env.ant.AntController.(AntController.java:56)
at ws.ant.task.WebServiceGenerationAntTask.execute(WebServiceGenerationAntTask.java:31)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 0 seconds
安装旧版本! 较新的版本存在很多错误,即使大多数情况下全新安装也无法从"新建"菜单创建Web服务! 忘记自动化!
是的,有很多错误...我通过直接使用轴生成器(例如:org.apache.axis.wsdl.Java2WSDL),通过蚂蚁任务" exec"来启动Java(不适用于Java任务... )。 谢谢您的回复 !
很好,我建议回答您的问题,祝您好运:)
正如我在评论中所说,我通过直接使用Axis类(如Eclipse)解决了这个问题:
重要说明:使用的Ant版本:
Apache Ant(TM) version 1.9.2 compiled on July 8 2013
1,依赖项(最小列表,在执行时将它们添加到ant classpath中):
axis.jar
axis-ant.jar
2,Ant build.xml:
从axis-ant.jar获取任务
resource="axis-tasks.properties"
/>
在目标中:
生成wsdl文件
注意:如果不起作用,请使用org.apache.axis.wsdl.Java2WSDL,类似于下一点,并且都具有" -h"选项以寻求帮助
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"
/>
生成deploy / undeploy.wsdd文件
直接使用" java"是因为在我的情况下,Axis-ant的ant任务不起作用。 和exec任务,我在Java任务中遇到一些问题(由于ant版本)
生成server-config.wsdd
清理生成的jar文件
干得好,我们尝试了玻璃鱼,它也很好!
不错! 并与ant 1.9.7一起使用
现在,如果有人知道如何使用CXF而不是Axis ...(具有兼容性,我不想修改客户端应用程序)