2014-01-17 91 views
0

在Netbeans中编译时,My Axis 1.4项目在目标机器上正确运行。不过,如果我编译使用我自己的Ant生成脚本(成功完成)项目,申请冻结在源代码行:Axis 1.4 Ant构建相关的依赖性问题

Call call = (Call) service.createCall(); 

蚂蚁javac任务的详细输出表明Call.class从在编译java源文件的类时,加载jaxrpc.jar,而不是来自axis.jar的Call.class。

我已经确保axis.jar在编译类路径中的jaxrpc.jar之前列出。

这似乎是一个依赖问题,这是我的编译版本没有正确解决...我做错了什么?

+0

你可以发布你的蚂蚁脚本?你怎么知道类装载器在装入罐子的顺序方面正在做什么? – David

回答

1

[已解决] - 抱歉浪费大家的时间!我刚发现我的问题,它实际上与目标机器上的应用程序启动脚本上的Classpath相关。而且因为建立在Netbeans上的JAR包含一个Classpath设置 - 这个JAR的工作原理!而我的Ant脚本创建的,没有指定类路径,而是依赖于java启动命令中的准确类路径定义...

顺便说一句,我认为错误的类被引用的原因,是因为:1.在运行时没有抛出ClassNotFound错误; 2.在我的Ant脚本中,javac任务的详细输出列出了jaxrpc Call.class在编译我的类文件时被加载此Call对象的一个​​实例,而不是Call.class的导入(和预期)轴实现(jaxrpc接口的实现)。