我正在尝试使用Java客户端调用Web服务。 WSDL看起来像这样:http://pastebin.com/m13124ba
我的客户:
public class Client{
public static void main(java.lang.String args[]){
try{
CompileAndExecuteServiceInterfaceStub stub =
new CompileAndExecuteServiceInterfaceStub
("http://192.168.1.3:8080/axis2/services/CompileAndExecuteServiceInterface");
Compile comp = new Compile();
comp.setArgs0("Test");
comp.setArgs1("public class Test { public static void main(String[] args) { System.out.println(\"Hello\");}}");
String[] classpath = {};
comp.setArgs2(classpath);
stub.compile(comp);
} catch(Exception e){
e.printStackTrace();
}
}
}
现在我运行客户端时会出现以下错误:
org.apache.axis2.AxisFault: unknown
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at de.dax.compileandexecuteclient.CompileAndExecuteServiceInterfaceStub.compile(CompileAndExecuteServiceInterfaceStub.java:184)
at de.dax.compileandexecuteclient.Client.main(Client.java:17)</blockquote>
我在我的本地计算机上试用了服务器的业务逻辑,然后就可以了。该服务创建文件和文件夹。是否允许Web服务执行此操作?我还写了一个简单的“Hello World”Web服务并将其部署到服务器上。这很好。
答案 0 :(得分:3)
当您获得其中一个“未知”的AxisFaults时,请务必检查服务器日志!客户端堆栈跟踪很可能不够详细,无法跟踪错误。
我相信dax表明他在更详细的服务器端堆栈跟踪中发现了NullPointerException。它看起来像是:
org.apache.axis2.AxisFault
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
[....]
Caused by: java.lang.NullPointerException
[....]
答案 1 :(得分:1)
从提供的日志中,我无法确定哪里出错了。尝试将Axis2的日志级别设置为“debug”(请参阅Axis2安装的根目录中的两个日志配置)并检查确切原因的详细信息。在传播来自webservices的错误时,Axis2往往有点稀疏。
答案 2 :(得分:0)
问题是我的服务中存在NullPointerException。